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();
                }
            }
        }
    }
}

 

posted @ 2022-04-24 00:52  280887072  阅读(160)  评论(0编辑  收藏  举报