欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

3.7 Java之打印流和数据流(附字符字节流练习)

程序员文章站 2022-07-13 14:50:33
...


打印流

  • 属于输出流
  • 分为PrintStream(字节打印流)和PrintWriter(字符打印流)
  • 提供了一系列重载的print和println方法,用于多种数据类型的输出
  • PrintStream和PrintWriter的输出不会抛出异常
  • PrintStream和PrintWriter有自动flush功能
  • System.out返回的是PrintStream的实例

实例

FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(new File("D:\\IO\\text.txt"));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }//创建打印输出流,设置为自动刷新模式(写入换行符或字节 '\n' 时都会刷新输出缓冲区)
    PrintStream ps = new PrintStream(fos,true);//字节型打印流 实例化
    if (ps != null) {   // 把标准输出流(控制台输出)改成文件
        System.setOut(ps);//形参为打印字节流的对象}
    for (int i = 0; i <= 255; i++) {  //输出ASCII字符
        System.out.print((char)i);//对应的ASCII码
        if (i % 50 == 0) {   //每50个数据一行
            System.out.println(); // 换行
        }  }
    ps.close();
  • 创建字节型的打印流,缓冲流是手动刷新的,true表示自动刷新(flush)
  • out是标准的输出流,默认打印到控制台上
  • 默认控制台输出,重新设置位置,设置为:输出到打印流指定的文件中

数据流

  • 数据流有两个类,没有对应的reader和writer,因为不是文本的
  • 分为输入型的数据流和输出型的数据流
  • 数据流处理的是基本数据类型,字符串和字节数组(8+2)
  • 作用于节点流山,属于处理流

数据流输出

3.7 Java之打印流和数据流(附字符字节流练习)

数据流输入

3.7 Java之打印流和数据流(附字符字节流练习)

  • 若write读取文件,输入到控制台上,呈现乱码
  • 正确做法:通过数据流的输入读取信息,打印到控制台上
  • 输出时,采用输出型数据流,相应地,输入时,也应采用输入型数据流,否则乱码
  • 错误:用write读取基本数据类型

字符字节流练习

字节流输出

3.7 Java之打印流和数据流(附字符字节流练习)

  • 通过字符串转化为字节数组,从而使用字节流输出
  • 未加flush(失误)

字符流输出

3.7 Java之打印流和数据流(附字符字节流练习)
3.7 Java之打印流和数据流(附字符字节流练习)

  • 未加flush(失误)

字符流输入

3.7 Java之打印流和数据流(附字符字节流练习)

  • 打印到控制台上,带ln的print
  • readLine与换行一定配对使用
  • FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象
    参数为文件路径
    • 等效于new file,只是封装到一起了,参数对应的还是一个file对象,本质上操作的是一个对象

字符流输入输出

3.7 Java之打印流和数据流(附字符字节流练习)

  • 下方代码未处理异常,自行补充
  • 输出时,文件对象可不存在
  • 若改成字节流输入输出,则三处改动(两个类一个数组)

总结

  • 字节流通过byte数组实现
  • 字符流通过char数组或readLine【write(string)】实现
  • 缓冲流输出一定要flush
  • 使用readline记得换行
相关标签: 打印流 数据流