1.IO流的概述
2.字节输出流 FileOutputStream(write)
2.1字节输出流基本用法和写数据的细节
写数据:整数写入的是ASCII对应的字符
2.2字节输出流写数据的三种方式
2.3换行和续写
换行: \r\n \r \n都可以
续写:FileOutputStream第二个参数,设为ture
byte[ ] bytes1 = str.getBytes():把String转为byte[ ]
2.4FileOutputStream总结
3.字节输入流 FileInputStream(read)
3.1FileInputstream基本用法和读数据的细节
3.2字节输入流循环读取
4.文件拷贝
4.1文件拷贝的基本代码
一次读一个字节:
4.2文件拷贝的的弊端和解决方法
第一个方法的返回值是读取的数据int值
第二个方法的返回值是读取数据的长度
4.3文件拷贝改写
5.捕获异常
示例
实现AutoCloseable接口的可以自动释放资源
JDK7:
JDK9:
6.字符集详解
6.1ASCII,GBK 中文2个字节
6.2Unicode 中文3个字节
7.为什么会有乱码
8.Java中编码和解码的代码实现
示例
9.字符输入流FileReader
9.1空参read方法详解
9.2有参read方法详解
10.字符输出流FileWriter
11.高级流
11.1缓冲流 Buffered
11.1.1字节缓冲流 BufferedInputStream/BufferedOutputStream
11.1.2 字符缓冲流 BufferedReader/BufferedWriter
字符缓冲流特有方法
字符缓冲输入流
可续写字符缓冲输出流
11.1.3缓冲流总结
11.2转换流
字节流转换成字符流
11.2.1转换流指定字符集读写(已淘汰) 有替代方案
利用转换流按照指定字符编码读取
利用转换流按照指定字符编码写出
利用转换流按照指定字符编码读写,GBK转成UTF-8
11.2.2字节流想要使用字符流中的方法
字节流 ---> 字符流 ---> 包装一下 --->字符缓冲流
11.2.3转换流总结
11.3序列化流
11.3.1序列化流 ObjectOutputStream 把对象写出
示例:
11.3.2反序列流 ObjectInputStream 读取对象
示例
11.3.3使用的细节
11.3.4总结
11.3.5练习
读写多个对象
11.4打印流
11.4.1字节打印流 PrintStream
示例:
11.4.2字符打印流 PrintWriter
示例:
11.4.3打印流的应用场景
11.4.4总结
11.5 压缩流 解压缩流
11.5.1解压缩流 ZipInputStream
getNextEntry()方法能获得所有文件和文件夹,包括子文件夹的子文件
11.5.2压缩流 ZipOutputStream
压缩单个文件
压缩文件夹