【发布时间】:2012-11-01 06:56:39
【问题描述】:
有没有办法在调用.write 方法后立即打印PrintWriter 或OutputStreamWriter?我为PrintWriter 开启了autoFlush。然而对于这两个类,只有在编写器关闭时才会打印内容。
为了它的价值,我使用Writers 因为我需要对控制台输出、文件输出和字符串输出进行抽象。
谢谢!
编辑:
显示问题的SSCCE:
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
PrintWriter p = new PrintWriter(System.out, true);
Scanner read = new Scanner(System.in);
while (read.hasNextLine()) {
String input = read.nextLine();
if (input.equals("end"))
break;
p.write(input);
}
p.close();
}
}
/* Sample run: (first four lines are input)
cow
mow
pow
end
cowmowpow
*/
【问题讨论】:
-
请展示一个简短但完整的程序来演示问题。
-
既然是
Writer,为什么不直接调用println(),它会在关闭流的同时立即刷新数据? -
@JonSkeet,请检查编辑。
-
@Eng.Fouad,因为
println不是java.io.Writer的成员。
标签: java io printwriter