文件节点流
FileInputStream 类
1、新建 FileInputStream 对象,若找不到文件、无法读取文件、无法关闭流都会产生异常
2、每次调用 read 方法,读取的字节会依次覆盖,read 方法传入的 byte[] 数组之前存储的字节
FileOutputStream 类
1、若调用 write 输出字符串,可以使用 String 类的 getBytes 方法,将字符串转为字节数组
2、构造器可以指定 append,创建时不指定,默认为 false,若 append 为 true,则字节将被写入文件末尾;若 append 为 false,则字节将被写入文件开头,即输出字节依次覆盖原文件字节
private final boolean append;
3、多次调用 write
(1)若 append 为 false,只要输出流不结束 / 刷新,指针一直在文件末尾,即输出字节都是追加写入,刷新当前输出流 / 结束当前输出流,使用新输出流(false),再次调用 write,指针会重置在文件开头
(2)若 append 为 true,指针一直在文件末尾,不论刷新当前输出流 / 结束当前输出流,使用新输出流(true),再次调用 write
(例)拷贝文件
try (FileInputStream fis = new FileInputStream("C://fileInput.txt");
FileOutputStream fos = new FileOutputStream("D://fileOutput.txt")) {
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) != -1) {//实现边读边写
fos.write(bytes, 0, length);//不调用write(byte b[]),防止写入多余数据
}
} catch (IOException e) {
e.printStackTrace();
}
FileReader 类
1、新建 FileReader 对象,若找不到文件、无法读取文件、无法关闭流都会产生异常
2、每次调用 read 方法,读取的字节会依次覆盖,read 方法传入的 char[] 数组之前存储的字符
3、read 方法输入的字符数组,可以调用 String 类的构造器,使 char[] 数组转为 String
FileWriter 类
1、FileWriter 对象调用 write 方法后,必须 close / flush,否则无法输出到指定文件
2、write 方法可以传入 String / char[],对字符进行输出
(1)手动转换字符串,调用 String 类的 toCharArray 方法,转换为 char[] 数组
(2)直接传入字符串,write 底层会调用 String 类的 getChars,自动转换为 char[] 数组
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战