/*打印流特点
1)只有输出没有输入。PrintStream是字节打印流,PrintWriter是字符打印流。
2)能够方便地打印各种数据“值表示形式”,提供了一系列的打印功能(只有它有,其它流都没有。) 3)和其他输出流不同,它永远不会抛出IOException异常(构造方法除外),异常内部解决且设置了内部标志。 4)可创建具有自动刷新的功能,可使用带换行符的println()方法。 5)(在构造方法中)可以指定字符集编码的。
* 1.打印流中write(int)方法的功能: * 1)输出字节数据,如果整数值大于一个字节只输出最后一个字. * 2)通常是面向计算机的,把原始数据输出。例如: 35是: 0010 0011 * 3)以后输出图片、声音类二进制文件,要用write()方法 * * 2.打印流中print(int)方法的功能: * 1)把整数参数转换成字符输出. * 2)通常是面向用户的,按"我们看到的样子"输出来 * 3)以后输出文本内容,要用print()或println()
*
* 关于打印流的自动刷新
* autoFlush - boolean 变量;如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区。---其实是因为这几个方法中帮我们调用了out.flush()。
*/
@Test public void printStreamDemo() throws IOException{ PrintStream out = new PrintStream("a.txt"); //out.write(97); //a 输出字节数据 //out.write(353);//a //out.print(97);//97 把整数参数转换成字符输出 例如: 35是: 0011 0101 out.print(353); //353 } @Test public void printStreamDemo2() throws IOException{ PrintStream out = System.out; for(int i=1;i<10;i++){ out.println("i="+i); } out.close();//把System.out关掉之后,后面的输出就无效了... System.out.println("--------------"); for(int i=1;i<10;i++){ System.out.println("i="+i); } } @Test public void printStreamDemo3() throws IOException{ changeOut(); for(int i=1;i<10;i++){ System.out.println("i="+i); } System.out.println("--------------"); } private void changeOut() { try { PrintStream ps = new PrintStream("aa.txt"); System.setOut(ps);//更改系统的System.out流,让所有输出存入文件 } catch (FileNotFoundException e) { e.printStackTrace(); } } }
