读取文件Java的有效方法

Ron*_*iah 0 java file bufferedreader

从文件中读取输入的最有效方法是什么?

我有一个非常大的文件,其中包含由换行符分隔的单词列表

例如

computer
science 
is 
fun
really
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用一个BufferedReader对象但是我对文档中的这一行感到困惑.

"通常,每个由Reader构成的读取请求都会导致相应的读取请求由基础字符或字节流组成.因此,建议将读取()操作可能代价高昂的任何Reader包裹在BufferedReader周围,例如FileReaders和InputStreamReaders.例如,

BufferedReader in = new BufferedReader(new FileReader("foo.in"));
Run Code Online (Sandbox Code Playgroud)

将缓冲指定文件的输入.如果没有缓冲,read()或readLine()的每次调用都可能导致从文件中读取字节,转换为字符,然后返回,这可能是非常低效的."<

有人可以向我解释一下吗?在第二次阅读时,我开始相信这BufferedReader是我最好的选择.有没有更好的办法?

lud*_*_rj 7

这篇文章可能有帮助.

BufferedReader是一个不错的选择,让你可以在Java 8中将BufferedReader转换为java.util.Stream.

使用java.util.stream包解析大型CSV文件:

InputStream is = new FileInputStream(new File("persons.csv"));
BufferedReader br = new BufferedReader(new InputStreamReader(is));

List<Person> persons = br.lines()
    .substream(1)
    .map(mapToPerson)
    .filter(person -> person.getAge() > 17)
    .limit(50)
    .collect(toList());
Run Code Online (Sandbox Code Playgroud)

与包含其中元素的内存数据结构的集合不同,Streams允许并行处理,并且行为类似于按需计算元素的固定数据结构.此外,Streams还支持Pipelining和Internal Iterations.

  • 此方法已从子流重命名为skip. (2认同)