Java中的outputstream出乎意料的结果
我正在尝试一个简单的程序来打印字符.当我这样做:
import java.io.*; public class listit { public static void main(String[] args) { for (int i = 32; i < 127; i++) { System.out.write(i); // break line after every eight characters. if (i % 8 == 7) System.out.write('n'); else System.out.write('t'); } System.out.write('n'); } } 我得到了预期的结果,即打印出ASCII字符集的可打印子集.但是,当我尝试类似的东西时: import java.io.*; public class listit { public static void main(String[] args) { int i = 122; System.out.write(i); } } 我完全没有输出,而我期待z.如果没有循环,这个程序与上面的程序有什么不同? 解决方法
PrintStream支持在换行符上自动刷新或刷新.
System.out已启用自动刷新,但对于System.out.write(‘A’),它只会在您写入换行符时自动刷新.注意:如果您执行System.out.write(“A”.getByte())将自动刷新. PrintStream.write(int)的Javadoc说明
这意味着您需要自动刷新并写入换行符. 注意:PrintStream.print(char)状态
这并不清楚冲洗是不同的. System.out.print('a'); System.out.write('b'); 只打印 a 我怀疑这种不一致是一个长期存在的错误,而不是一个功能(换句话说,它不会被修复). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |