我正在编写一个
InputStream
,用于在常量间隔时间内提供文件中的行。我之前使用BufferedReader
,但是遇到了缓冲问题(必须等待整个文件读取完毕才能获取任何内容),而且速度也不是问题(间隔时间大约为每秒或每半秒)。是否有一种类似于BufferedReader
的带有readLine
方法的类,除了没有缓冲?
(编辑:我刚刚检查了一下-我的类似乎有效,显然问题出在输出上)
这是我使用流的代码(OnlineDataSimulator
)。我已经检查过,该流做到了我想要的,所以显然我在输出方面做错了什么。(实际问题是,我希望输出每X毫秒发生一次-X是OnlineDataSimulator
的第二个参数。当我运行此代码时,我首先得到X *行的等待,然后一次性获取整个输出。)
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();