IO流高级流--打印流

Java打印流详解

打印流

在这里插入图片描述

分类

打印流包含两个类:PrintStreamPrintWriter

特点
  1. 操作方向:只操作文件目的地,不操作数据源
  2. 数据原样写出:通过特有的写出方法,能将数据(如97true)原样写入文件
  3. 自动换行 + 刷新:特有的写出方法支持自动换行、自动刷新,一次打印等价于 “写出 + 换行 + 刷新”

字节打印流

构造方法
构造方法说明
public PrintStream(OutputStream/File/String)关联字节输出流 / 文件 / 文件路径
public PrintStream(String fileName, Charset charset)指定字符编码
public PrintStream(OutputStream out, boolean autoFlush)自动刷新(注:字节流底层无缓冲区,自动刷新开关效果一致)
public PrintStream(OutputStream out, boolean autoFlush, String encoding)指定字符编码且自动刷新
成员方法
成员方法说明
public void write(int b)常规方法:按字节写出数据
public void println(Xxx xx)特有方法:打印任意数据,自动刷新 + 自动换行
public void print(Xxx xx)特有方法:打印任意数据,不换行
public void printf(String format, Object... args)特有方法:带占位符的打印,不换行
//1.创建字节打印流的对象
PrintStream ps = new PrintStream(new FileOutputStream("myio\\a.txt"), true, Charset.forName("UTF-8"))
//2.写出数据,以原样输出
ps.println(97);//写出 + 自动刷新 + 自动换行
ps.print(true);
ps.println();
ps.printf("%s爱上了%s","阿珍","阿强");
//3.释放资源
ps.close();

字符打印流

构造方法
构造方法说明
public PrintWriter(Write/File/String)关联字符输出流 / 文件 / 文件路径
public PrintWriter(String fileName, Charset charset)指定字符编码
public PrintWriter(Write w, boolean autoFlush)自动刷新(注:字符流底层有缓冲区,需开启自动刷新)
public PrintWriter(OutputStream out, boolean autoFlush, Charset charset)指定字符编码且自动刷新
成员方法
成员方法说明
public void write(...)常规方法:写出字节或字符串(规则与之前一致)
public void println(Xxx xx)特有方法:打印任意类型数据并换行
public void print(Xxx xx)特有方法:打印任意类型数据,不换行
public void printf(String format, Object... args)特有方法:带占位符的打印语句
//1.创建字符打印流的对象
PrintWriter pw = new PrintWriter(new FileWriter("myio\\a.txt"),true);

//2.写出数据
pw.println("今天你终于叫我名字了,虽然叫错了,但是没关系,我马上改");
pw.print("你好你好");
pw.printf("%s爱上了%s","阿珍","阿强");

//3.释放资源
pw.close();
public class PrintStreamDemo4 {
    public static void main(String[] args) {
        /*
         *      打印流的应用场景
         * */

        //获取打印流的对象,此打印流在虚拟机启动的时候,由虚拟机创建,默认指向控制台
        //特殊的打印流,系统中的标准输出流,是不能关闭,在系统中是唯一的。
        PrintStream ps = System.out;

        //调用打印流中的方法println
        //写出数据,自动换行,自动刷新
        ps.println("123");

        //ps.close();

        ps.println("你好你好");

        System.out.println("456");
    }
}

总结

  1. 分类:分为字节打印流、字符打印流两种
  2. 通用特点:不操作数据源,只能操作目的地
  3. 字节打印流特点:默认自动刷新,特有的println方法支持自动换行
  4. 字符打印流特点:自动刷新需要手动开启,特有的println方法支持自动换行
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值