打印流 -可将数据写入文件/可改变输出方向

打印流


  • java.lang.Object
    继承者 java.io.OutputStream
    继承者 java.io.FilterOutputStream
    继承者 java.io.PrintStream

  • 与其他输出流不同,PrintStream 永远不会抛出 IOException; 打印的所有字符都使用平台的默认字符编码转换为字节。有很多OutputStream的成员方法

  • 构造方法:

    1. PrintStream(File file)
      输出的目的地是一个文件;
    2. PrintStream(File file, String csn)
      创建具有指定文件名称和字符集且不带自动行刷新的新
    3. PrintStream(OutputStream out)
      输出的目的地是一个字节输出流;
    4. PrintStream(OutputStream out, boolean autoFlush)
      创建新的打印流。
    5. PrintStream(OutputStream out, boolean autoFlush, 1. String encoding)
      创建新的打印流。
    6. PrintStream(String fileName)
      输出的目的地是一个文件路径;
    7. PrintStream(String fileName, String csn)
      创建具有指定文件名称和字符集且不带自动行刷新的新打印流。
  • 注:如果使用Writer方法写数据,查看数据时会查询编码表,如写入97,查看为a;若使用print方法写数据,则会原样输出。

package objectStream;

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class PrintStreamTest {
    public static void main(String[] args) throws FileNotFoundException {
        //1.创建打印流对象,绑定输出文件路径,实际调用FileOutputStream
        PrintStream printStream = new PrintStream("b.txt");
        //2.使用writer方法测试,文件写入的是a,缺陷只能写入整数,但可以用print
        printStream.write(97);  //a
        //3.文件写入的是97
        printStream.print(97);  //a97
        //写入后换行
        printStream.println("你好呀");  //a97你好呀

        //释放资源
        printStream.close();


    }
}

特点


  • 特点:可以使用System.setOut方法改变输出语句目的地(打印流方向)

  • static void setOut(PrintStream out) - 重新分配标准输出流

package objectStream;

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class PrintStreamTest {
    public static void main(String[] args) throws FileNotFoundException {
        System.out.println("控制台输出");
        //创建打印流对象,绑定要输出的文件路径
        PrintStream printStream = new PrintStream("b.txt");
        //改变打印流输出方向,写入的是文件
        System.setOut(printStream);
        System.out.println("目的地改变,放入b.txt文件中");
        //释放资源
        printStream.close();


    }
}

posted @ 2019-09-29 18:29  学之初  阅读(375)  评论(0编辑  收藏  举报