【发布时间】:2013-06-20 14:19:46
【问题描述】:
我有一个文本文件,每行一个整数 -
10
20
50
我想两次甚至多次阅读和打印这些数字。我尝试了一些代码,但失败了。如何更改我的代码以打印列表两次?
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
public class DoubleBuffer {
public static void main(String[] args) {
try {
FileInputStream fstream = new FileInputStream("c:/files/numbers.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
// Read rows
while ((strLine = br.readLine()) != null) {
System.out.println(strLine);
}
// Read rows again
while ((strLine = br.readLine()) != null) {
System.out.println(strLine);
}
in.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}//try-catch
}// main
}// class
【问题讨论】:
-
要么将它们存储在列表中,要么重新启动缓冲区/
-
如果“内存不是问题”,您可以将整个输入存储为
byte[],然后根据需要创建ByteArrayInpuStream。 -
将它们存储在列表中是理想的。
-
@ChristianMark - 是的,这是有道理的。重新读取文件需要两倍的 IO。此外,我们需要使用相同的内存两次来存储我们读取的行。对???
-
请不要使用 DataInputStream 读取文本,也请从您的示例中删除它,这个坏主意经常被复制。 vanillajava.blogspot.co.uk/2012/08/…
标签: java io inputstream bufferedreader