作者:多米音乐_34053121 | 来源:互联网 | 2023-09-10 20:35
一.输入流输出流方向判断二.乱码原因字节数不够:通过字节流逐个读取字符集,字符集中包含中文表现:汉字显示不全字符集不统一:源文件和转换后的文件编码解码格式需统一表现:不能正确显示汉
一.输入流输出流方向判断
二.乱码原因
- 字节数不够:通过字节流逐个读取字符集,字符集中包含中文
- 字符集不统一:源文件和转换后的文件编码解码格式需统一
三.流分类介绍
- 字节流(InputStream,OutputStream)
- 实现类:FileInputStream,FileOutputStream
- 字符流(Reader,Writer)
- 实现类:FileReader,FileWriter
- 其他流
- 转换流:InputStreamReader,OutputStreamWriter
作用:通过装饰流将输入流-->输出流
- 装饰流:
- BufferedInputStream,BufferOutputStream
- BufferedReader,BufferedWriter
- 作用:修饰字符流,提高运行效率
- 若想修饰字符流的装饰流(BufferedReader,BufferedWriter)修饰字节流需要通过转换流
- 打印流:PrintStream,PrintWriter
- 区别:PrintWriter属于字符流,需要通过flush()刷新管道
- 作用:将对象格式打印到文本输出流,简言之,输出一段文本。
- 重点:字节流转换成字符流多用输出流而非转换流
- 对象流:ObjectInputStream,ObjectOutputStream
- 作用:本地文件中传输、存储对象,网络传输中传输对象
- 前提:被传输的对象需实现序列化接口
参考链接:https://www.cnblogs.com/ly411/p/14675416.html
四.测试(输入内容中英混合)
3.1 字节流写入,字节流读取
- 程序截图
3.2 字符流写入,字符流读取
- 程序截图
3.3 字节流写入,字符流读取
- 程序截图
3.4 字符流写入,字节流读取
- 程序截图
3.5 装修流写入读取,爬虫原理
- 根据不同的输入流,选择不同的装饰流
- 程序截图
五.总结
- 根据输入源选择字节流或字符流
- 传输内容为文本且中英混合,选择缓冲字符输入流按行读取,输出流任意
- 传输内容为图片等二进制文件,用字节输出流写入,字节输入流读取
- 流传输尽量用装饰流装饰,提高效率
- 打印流输出内容不用装饰流,因为效率提高不明显。
附上本地文件和socket网络编程常用的流