文件节点流

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[] 数组

posted @   半条咸鱼  阅读(52)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示