打印流和转换流

  • 打印流

    • PrintWriter
      • 封装了print()/println()方法,支持写入后换行
      • 支持数据原样打印
    //创建打印流
    PrintWriter pw = new PrintWriter("D:\\print.txt");
    //打印
    pw.println(97);
    pw.println(true);
    pw.println(3.14);
    pw.println('a');
    //关闭
    pw.close();
    /*
    运行完print.txt内容:
    97
    true
    3.14
    a
    */
    
  • 转换流

    • 桥转换流:InputStreamReader/OutputStreamWriter
      • 可将字节流转换为字符流
      • 可设置字符的编码方式

    例1:使用InputStreamReader读取文件,可指定使用的编码

    //创建InputStreamReader对象
    FileInputStream fis = new FileInputStream("D:\\writer.txt"); //抛出异常
    InputStreamReader isr = new InputStreamReader(fis,"utf-8");
    //读取文件
    int data = 0;
    while((data = isr.read()) != -1){System.out.print((char)data);
    }
    //关闭
    isr.close();
    

    例2:使用OutputStreamWriter写入文件,可指定使用的编码

    //创建OutputStreamWriter对象
    FileOutputStream fos = new FileOutputStream("D:\\info.txt");
    OutputStreamWriter osw = new OutputStreamWriter(fos,"gbk");
    //写入
    for(int i = 0; i < 10; i++){osw.write("我爱中国!\r\n");osw.flush();
    }
    //关闭
    osw.close();