import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
import org.junit.Test;
public class PrintStreamDemo {
/*打印流特点
1)只有输出没有输入。PrintStream是字节打印流,PrintWriter是字符打印流。
2)能够方便地打印各种数据“值表示形式”,提供了一系列的打印功能(只有它有,其它流都没有。)
3)和其他输出流不同,它永远不会抛出IOException异常(构造方法除外),异常内部解决且设置了内部标志。
4)可创建具有自动刷新的功能,可使用带换行符的println()方法。
5)(在构造方法中)可以指定字符集编码的。
* 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();
}
}
}