io-FileOutputStream输出流(内存到硬盘重要)
FileOutputStream 字节输出流write:从内存到硬盘
推荐这种写法,在后面追加一个true表示追加新增的内容会写在原文内容之后:FileOutputStream fos =new FileOutputStream("chapter23/src/tempfile3", true)
创建对象之后一定要刷新:fos.flush()
这种方式从内存写到硬盘,如果myfile不存在会直接创建:FileOutputStream fos =new FileOutputStream("myfile")
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * 文件字节输出流,负责写。 * 从内存到硬盘。 */ public class FileOutputStreamTest01 { public static void main(String[] args) { FileOutputStream fos = null; try { // myfile文件不存在的时候会自动新建! //fos = new FileOutputStream("myfile"); // 这种方式谨慎使用,这种方式会先将原文件清空,然后重新写入。 //fos = new FileOutputStream("chapter23/src/tempfile3"); // 以追加的方式在文件末尾写入。不会清空原文件内容。 fos = new FileOutputStream("chapter23/src/tempfile3", true); // 开始写。 byte[] bytes = {97, 98, 99, 100}; // 将byte数组全部写出! fos.write(bytes); // abcd // 将byte数组的一部分写出! fos.write(bytes, 0, 2); // 再写出ab // 字符串 String s = "我是一个中国人,我骄傲!!!"; // 将字符串转换成byte数组。 byte[] bs = s.getBytes(); // 写 fos.write(bs); // 写完之后,最后一定要刷新 fos.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } } }