I/O流

121 阅读1分钟

字符流

FileReader ——> int read(char[] c):读中文也不会乱码

1.png

2.png

FileWriter ——> void writer(String str)

1.png

2.png

`FileWriter ——> void write(char[] c,int offset,int len)

  • 写入默认是覆盖操作,通过修改配置可改为追加操作

1.png

2.png

字节流

使用方法基本相同,不同的是byte[]char[]

  • 使用字节流读写字符文件,可以正确的写到目标文件中,不会出现乱码中文,但是在中途打印到控制台就会出现乱码
  • 如果txt写的不是中文,使用字节流读取不会乱码

1.png

使用字节流复制图片

  • 使用字节流复制图片报错,不能使用字符流复制图片 1.png

缓冲流

使用BufferInputStream和BufferOutputStream复制图片

1.png

字符缓存流提供了按行读取的方式br.readLine()

1.png

习题

图片加密

1.png

解密与加密相同

转换流 形参都是字节流

InputStreamReader 将一个字节的输入流转换为字符的输入流

字节输入流 ——> 字符输入流

  • 转换之后,可以指定字符编码集
  • 在使用字节流读字符文件,并在控制台打印时,会出现乱码情况,使用装换流,保证字节流,并指定编码集,可以在控制台正常打印

1.png

OutputStreamWriter 将一个字符的输出流转换为字节的输出流

  • 以gbk存储之后,在idea里面乱码,赋值粘贴到桌面上文本文件不会乱码

1.png