IO流(九) 打印流

打印流的概述

打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式.

java.io.PrintStream:打印流

    PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。

PrintStream特点:

    1.只负责数据的输出,不负责数据的读取

    2.与其他输出流不同,PrintStream 永远不会抛出 IOException

    3.有特有的方法,print,println

        void print(任意类型的值)

        void println(任意类型的值并换行)

构造方法:

    PrintStream(File file):输出的目的地是一个文件

    PrintStream(OutputStream out):输出的目的地是一个字节输出流

    PrintStream(String fileName) :输出的目的地是一个文件路径

PrintStream extends OutputStream

继承自父类的成员方法:

    - public void close() :关闭此输出流并释放与此流相关联的任何系统资源。

    - public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。

    - public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。

    - public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。

    - public abstract void write(int b) :将指定的字节输出流。

注意:

    如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表 97->a

    如果使用自己特有的方法print/println方法写数据,写的数据原样输出 97->97

 

可以改变输出语句的目的地(打印流的流向)

    输出语句,默认在控制台输出

    使用System.setOut方法改变输出语句的目的地改为参数中传递的打印流的目的地

        static void setOut(PrintStream out)

          重新分配“标准”输出流。

打印流根据流的分类:

  1. 字节打印流 PrintStream
  2. 字符打印流 PrintWriter
  3. 方法:

void print(String str): 输出任意类型的数据,

void println(String str): 输出任意类型的数据,自动写入换行操作

代码演示:

 /* 
 * 需求:把指定的数据,写入到printFile.txt文件中
 * 
 * 分析:
 * 	1,创建流
 * 	2,写数据
 * 	3,关闭流
 */
public class PrintWriterDemo {
	public static void main(String[] args) throws IOException {
		//创建流
		//PrintWriter out = new PrintWriter(new FileWriter("printFile.txt"));
		PrintWriter out = new PrintWriter("printFile.txt");
		//2,写数据
		for (int i=0; i<5; i++) {
			out.println("helloWorld");
		}
		//3,关闭流
		out.close();
	}
}

打印流完成数据自动刷新

可以通过构造方法,完成文件数据的自动刷新功能

  1. 构造方法:
  2. 开启文件自动刷新写入功能

public PrintWriter(OutputStream out, boolean autoFlush)

public PrintWriter(Writer out, boolean autoFlush)

代码演示:

 /* 
 * 分析:
 * 	1,创建流
 * 	2,写数据
 */
public class PrintWriterDemo2 {
	public static void main(String[] args) throws IOException {
		//创建流
		PrintWriter out = new PrintWriter(new FileWriter("printFile.txt"), true);
		//2,写数据
		for (int i=0; i<5; i++) {
			out.println("helloWorld");
		}
		//3,关闭流
		out.close();
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值