本周主要学习了以下四个方面的知识
- IO流
- Spring MVC 原理
- HttpClient的使用
- 接口思想
现作以下总结
IO流##
关于IO流的学习主要参考文章为:Java IO流学习总结
Java流操作有关的类或接口:
- File 文件类
- RandomAccessFile 随机存取文件类
- InputStream 字节输入流
- OutputStream 字节输出流
- Reader 字符输入流
- Writer 字符输出流
流的概念和作用###
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,
**流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 **
字符流和字节流####
字符流的由来: 因为数据编码的不同,而有了对字符进行操作的流对象。本质其实就是基于字节流读取时,去查了对应的码表。
字节流和字符流的区别:
- 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
- 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
关于字节流参考如下:
java.io包中的字节流(上)—— 基本的InputStream和OutputStream
java.io包中的字节流(下)—— FilterInputStream和FilterOutputStream
字符流与字节流转换###
转换流的特点:
其是字符流和字节流之间的桥梁
- 可对读取到的字节数据经过指定编码转换成字符
- 可对读取到的字符数据经过指定编码转换成字节
何时使用转换流?
- 当字节和字符之间有转换动作时;
- 流操作的数据需要编码或解码时。
具体的对象体现:
InputStreamReader:字节到字符的桥梁
OutputStreamWriter:字符到字节的桥梁
这两个流对象是字符体系中的成员,它们有转换作用,本身又是字符流,所以在构造的时候需要传入字节流对象进来。