Java学习记录
流IO:
- 流(Stream)是一组有序的数据序列,流为数据的输入和输入提供了一条通道;
- 流可以分为:输入流和输出流;
- 输入流:InputStream 和 输出流:OutputStream 分别数字节输入和输出流的抽象类
4.Java中的字符编码是Unicode码,是双字节码,所以字节流并不合适用来处理字符;因此Java提供了字符流类:Reader类和Writer类,用于处理字符的输入和输出,同样Reader类和Writer类也是抽象类。
1.File
- File用于创建代表磁盘文件本身的对象,这里的“磁盘文件”不仅可以代表真正的文件(如:.txt .doc文本文件),还可以代表文件夹,通常需要使用File类来创建一个数据的源和靶。
2.FileInputStream
- 字节输入流,通常用于读取byte类型数据,在读取汉字时可能会出现乱码。
3.FileReader
- 独立于FileInputStream类,字符输入流,通常用于读取字符型数据,可用于读取汉字。
4.BufferedInputStream
- 包装类,带缓存的输入流用于对InputStream进行性能优化,带有缓存可以使得在流输入时,执行跳过,标记,重置等操作。
5.DataInputStream
- 包装类,允许读取数据时以与机器无关的方式从底层流中获得基本得Java数据类型,具体的实现需要结合该类提供的方法。
6.ZipInputStream
- 包装类,用于读取压缩文件中的数据,使用时,需要注意设置zip条目入口。
TIPS:
- 在使用完毕流后,最好显示地关闭流,不然可能会导致读取的数据或者写入的数据出现错误。
- Java中数据类型的显示转换会基于Unicode码表(如:将 int类型数据 转换成 char类型数据 时,转换后的结果是Unicode码表中对应int值顺序的字符)。
- Java中使用for-each时遍历数组时,是通过局部变量来储存数组的每一个元素,即:改变局部变量值不会改变数组内的元素值。