(IO随用随创建,不用了就关流)
1.字节流
OutputStream(字节输出流,写出)
FileOutputStreanm
off表示起始索引,len表示截取长度
Windows换行符:"\r\n" Linux:"\n" Mac:"\r"
续写:创建对象第二个参数写true
字节打印流(特有方法会原样输出)
无缓冲区,自动刷新无用
InputStream(字节输入流,读取)
FileInputStreanm
编码、解码
字节缓冲流(效率高)
序列化流(对象操作输出流)、反序列化流(对象操作输入流)
- ObjectOutputStream
- ObjectInputStream
序列化流可以把Java中对象写到本地文件中,
反序列化流可以读取
细节:1.使用时JavaBean类需要实现标记型接口Serializable
2.因JavaBean类经常需要改动,故需要固定版本号private static final long serialVersionUID = ;
3.transient修饰的属性不会参与序列化
4.批量序列化、反序列化,可将对象存入ArrayList操作
2.字符流
Reader
FileReader
Writer
FileWriter
字符打印流
有缓冲区,自动刷新需要手动开启
字符缓冲流
方法常用,newLine可在Windows、Linux、Mac不同系统进行换行操作
转换流
- InputStreamReader
- OutputStreamWriter
作用:
1.JDK11以前用指定字符集读取数据
2.字节流想要使用字符流中方法,如readLine()
Commons-io工具包
使用步骤
常见方法
Hutool工具包
注意FileReader和FileWriter与java自带io包下方法重名,导包注意包名