我不知道为什么这两个案例的输出有所不同。.case 1:-线程运行方法
public void run() {
PrintWriter pw=new PrintWriter(System.out);
for (int i = 0; i < 30; i++) {
pw.print(i);
}
pw.close();
}
它打印从0到30的所有数字
。情况2:-
public void run() {
for (int i = 0; i < 30; i++) {
PrintWriter pw=new PrintWriter(System.out);
pw.print(i);
pw.close();
}
}
它仅打印0
我不知道有线程时printWriter的工作方式,在线程中使用printWriter和System.out.println()有什么区别?
与线程无关。问题是,当您关闭PrintWriter
时,您将关闭基础流。哪个(恐怖)恰好是System.out
。
代替pw.close()
执行pw.flush()
。
不要关闭不是您的流:)