我正在编写一个InputStream
以恒定间隔从文件中提供行的方法。我以前用过BufferedReader
,但遇到了缓冲问题(在读取整个文件之前没有得到任何东西),而且速度无论如何都不是问题(间隔是每秒或每半秒 - 沿着这些线)。除了无缓冲之外,是否有一个具有readLine
类似 in 方法的类?BufferedReader
(编辑:我刚刚检查过 - 我的课似乎可以工作,显然问题出在输出上)
这是我使用流 ( OnlineDataSimulator
) 的代码。我已经检查过了,流完全符合我的要求,所以显然我对输出做错了。(实际的问题是,我希望每 X 毫秒输出一次 - X 是 . 的第二个参数OnlineDataSimulator
。当我运行此代码时会发生什么,我首先得到 X*lines 等待,然后立即输出整个输出。)
System.out.println("Testing:");
PrintStream fout = new PrintStream(new FileOutputStream("testfile"));
for(int i=0; i<20; ++i) {
fout.println(i);
}
fout.close();
BufferedReader fin = new BufferedReader(new InputStreamReader(
new OnlineDataSimulator("testfile",250)));
String line;
while((line=fin.readLine())!= null){
System.out.println(line);
System.out.flush();
}
fin.close();
(new File("testfile")).delete();