java 打印流

(只有两个,PrintWriter和PrintStream)

思考:如果现在要想完成一个字符串或者是boolean型或者是字符型的数据输出使用OutputStream是否方便?

肯定是不方便的,因为OutputStream中只能操作字节数据,所以其他的数据类型很难操作,那么在Java的IO包中为了解决这种问题增加了两种类:PrintStream、PrintWriter

打印流有非常好的打印功能,可以打印任何的数据类型。如,整数,小数,字符串等。

观察PrintStream类的构造:

       public PrintStream(File file) throws FileNotFoundException    

       public PrintStream(OutputStream out)

虽然PrintStream是OutputStream的子类,但是在实例化的时候依然需要一个OutputStream的对象。

 

PrintWriter和PrintStream都属于输出流,分别针对字符和字节。

PrintWriter和PrintStream重载的print()和println()用于多种数据类型的输出。

print()里的参数不能为空;println()可以

PrintWriter和PrintStream输出操作不抛出异常

PrintStream调用println方法有自动flush功能;

Eg:

package june6D;

import java.io.FileWriter;

import java.io.PrintStream;

import java.io.PrintWriter;

public class PrintDemo9 {

    public static void main(String[] args) throws Exception {

        PrintStream ps = new PrintStream("out.txt");

        // ps.write(12);

        ps.println(10086);

        ps.println(false);

        // ps.print();针对print而言,不可以出现这样的(无参)

        ps.println();// 此时就可以

        //备注:System.out.println();想当于ps = System.out;

        ps = System.out;

        ps.println("您好!");// 控制台操作,注意上一句

        // 字符打印流

        PrintWriter pr = new PrintWriter("out2.txt");

        // PrintWriter(OutputStream out, boolean autoFlush) 通过现有的 OutputStream,创建新的 PrintWriter。(构造方法)

        pr = new PrintWriter(new FileWriter("out2.txt"), true);// 自动刷新,否则的话需要关闭资源!

        // 与PrintStream不同,若PrintWriter使用了自动刷新方法,那么必须调用println,print,format这些方法的其中一个才可以实现操作

        pr.println("呼哈哈哈哈");

        pr.println(false);

        pr = new PrintWriter(System.out, true);// 打印在控制台上

        pr.println(false);

        pr.println("河南城建学院");

        pr.println(376430645);

        // pr.close();//因为使用了自动刷新。

    }

}

原文地址:https://www.cnblogs.com/fanweisheng/p/11136233.html