Java 读取文本文件的最快方法

Java 读取文本文件的最快方法,java,java-io,Java,Java Io,读取文本文件以进行处理的最快方式是什么? 从文件到程序的输入必须是ascii,才能进行一些文本处理。 哪个应该更快?使用BufferedReader或BufferedInputStream 例如: in = new BufferedReader(new FileReader(inFileName)); char[] buffer = new char[8*1024]; while((len = in.read(buffer))>=0) { //format text } O

读取文本文件以进行处理的最快方式是什么? 从文件到程序的输入必须是ascii,才能进行一些文本处理。 哪个应该更快?使用BufferedReader或BufferedInputStream

例如:

in = new BufferedReader(new FileReader(inFileName));
char[] buffer = new char[8*1024];
while((len = in.read(buffer))>=0) {
       //format text
}

OR
in = new BufferedInputStream(new FileInputStream(inFileName));
byte[] buffer = new byte[8*1024];
while((len = in.read(buffer))>=0) {
    String str = new String(bytes, "ISO-8859-1");
    char [] chars = str.toCharArray();
     //format text
}

我对这段代码计时,看不出有什么不同。我想知道是否有人根据文件的大小有任何输入。

对于1MB文件来说,这几乎没有什么区别。这两个版本将在大约一秒钟内执行。从GC和内存使用的角度来看,我更关心第二个版本中额外的
字符串和
字符[]
的创建。

您的文件大小是多少?所以。。。为什么不使用一个大文件来计时呢?文件大小是1MB。我想知道理论上最好的方法是什么——听起来以字节为单位的读取速度应该更快。但是,如果你必须重新格式化为字符串,这有意义吗?@user3096748一般来说,如果你的文件大小很小(可以很容易地加载到内存中),那么你读取它的方式就不会有任何区别。只有当您开始处理千兆字节和千兆字节文件时,您才需要考虑其他缩放算法