读文件
1 | FileInputStream fileInputStream = new FileInputStream("C:\\Users\\admini\\Desktop\\h5(7).html"); |
需要注意的是,可以不需要BufferedInputStream 直接使用FileInputStream来读取,BufferedInputStream 继承了FileInputStream,BufferedInputStream 效率更高
写文件
1 | FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\admini\\Desktop\\123.txt"); |
需要注意的是,可以不需要BufferedOutputStream 直接使用FileOutputStream 来写入
但是,FileOutputStream 每一次写都是一次io,效率低,BufferedOutputStream 的write()会现将数据缓存,然后写入,然后再缓存再写入,减少io
非常重要的一点是,触发写入的时间是缓冲区填满的时候,当流的最后一段没有将缓冲区填满,那么就不会触发写入,导致数据丢失
这时需要使用flush()方法强制将将缓冲区数据写入,并且清空缓冲区,调用close()方法也可以实现这个功能,因为close()方法中调用flush()方法