【发布时间】:2013-02-09 10:22:27
【问题描述】:
我有一段代码作为。
File file = new File(path);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String temp;
StringBuffer sb=new StringBuffer();
while((temp=br.readLine())!=null){
sb.append(temp);
sb.append(" ");
}
这将从文件中读取每一行并将其存储在 StringBuffer 中。我的文件非常大,我需要对它进行多线程处理,这样处理速度会更快。 有没有办法说我只想将文件的 1/4 写入缓冲区?
我知道我不能这么说。但我想要与此等价的东西。
for(int i=0; i<reader.length/4; i++)
【问题讨论】:
-
我不认为你可以,但如果你提前知道四分之一,你可以在那个时候停止阅读。
-
您的处理需要什么? (你对
StringBuffer中的数据做了什么)? -
“相当大”是什么意思?文件是否总是适合内存,还是太大了,您必须以这种方式避免 OutOfMemoryException?
-
我有一个 12GB 的文件。我希望4个StringBuffers中的内容使用4个线程,这样处理效率更高。所以我想我可以破坏文件的内容。
-
“我的文件非常大,我需要多线程处理以加快处理速度”:从文件中读取数据通常远慢于处理它。你确定 CPU 使用是瓶颈吗?
标签: java file bufferedreader filereader stringbuffer