版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33621967/article/details/60323683
package cn.hncu.io.print;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
/*
* ★打印流的特点:
* 1)只有输出没有输入。PrintStream是字节打印流,PrintWriter是字符打印流。
2)能够方便地打印各种数据“值表示形式”,提供了一系列的打印功能(只有它有,其它流都没有。)
3)和其他输出流不同,它永远不会抛出IOException异常(构造方法除外),异常内部解决且设置了内部标志。
4)可创建具有自动刷新的功能,可使用带换行符的println()方法。
5)(在构造方法中)可以指定字符集编码的。
*
*/
public class PrintXXX {
public static void main(String[] args) {
// 打印流--PrintStream和PrintWriter
//字节打印流演示案例---字节流不需要进行刷新操作
//printStreamDemo();
//printWriteDemo();
autoFlushPrintXXXDemo();
}
private static void autoFlushPrintXXXDemo() {
//autoFlush - boolean 变量;如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区。---其实是因为这几个方法中帮我们调用了out.flush()。
PrintWriter out = null;
try {
out = new PrintWriter(new FileOutputStream("files/autoFlush.txt",true));
//out.print("这个不自动刷新吗...");
out.println("这个自动刷新吗...");
//out.flush();
//out.printf(format, args);//这两个参数好像有点麻烦就不演示了
//out.pr
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
//out.close();
}
}
private static void printWriteDemo() {
PrintWriter out = null;
try {
out = new PrintWriter("files/printWrite.txt");
//下面两个方法的功能跟字节的功能相同
out.write("需要进行刷新吗...");
out.write(97);
out.write("\r\n");//回车换行,单独写进换行是不行的!!!
out.print("\r\n");//两个都行
out.write(353);
out.print(353);//理解"值表示形式!!!"
//但是为了保险在进行一次刷流更好啊!!
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
out.close();//关流操作顺带刷流功能!!!
}
}
private static void printStreamDemo() {
PrintStream out = null;
try {
out = new PrintStream(new File("files/printStream.txt"));
out.write(97);//01100001--调用write()方法,虽然参数为写进一个整数,但是写到文件中存放的是字符!!!,且为最后一个字节的字符表现形式
out.write(353);//00000001 01100001
out.print(353);//调用print方法输出的是"值表示形式!!!"这点要特别注意:353存放的是三个字符'3','5','3'
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
out.close();//和其他输出流不同,它永远不会抛出IOException异常(构造方法除外),异常内部解决且设置了内部标志。
//其他流在进行关流的操作时会抛出IOException异常!!!这点注意!!!
}
}
}