FileOutputStream字节输出流

字节输出流,从内存到硬盘

1.构造方法

构造方法 作用
FileOutputStream(File file) 创建文件输出流以写入由指定的 File对象表示的文件
FileOutputStream(File file, boolean append) 创建文件输出流以写入由指定的 File对象表示的文件
FileOutputStream(FileDescriptor fdObj) 创建文件输出流以写入指定的文件描述符,表示与文件系统中实际文件的现有连接
FileOutputStream(String name) 创建文件输出流以指定的名称写入文件
FileOutputStream(String name, boolean append) 创建文件输出流以指定的名称写入文件

2.调用write方法去写

package com.io;

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 {
            //文件不存在时会创建,再次运行会将文件清空之后再重新写入
            fos = new FileOutputStream("OutTest");
            //开始写
            //定义一个数组
            byte[] bytes={98,99,100,68,69,70};
            //将数组写入到文件中去
            fos.write(bytes);
            //将数组的一部分写入到文件中去
            fos.write(bytes,0,2);
            //写完之后一定要记得刷新
            fos.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fos == null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

可以看到,当文件不存在的时候会在idea的根下面新建一个文件

可以看到文件被写入成功!

可以看出,当我们再次运行的时候,文件会被清空,那如果我们想添加内容,原文件内容保留下来,怎么进行操作!只需执行追加操作即可,即在文件路径后面用逗号隔开,跟一个true,因为追加操作默认为false

fos = new FileOutputStream("OutTest",true);

我们在往文件里重新添加一个字符串,只需用getbyte方法将字符串转换为数组即可!

String s="我们要趁着年轻做些有意义的事情,而不应该觉得自己年轻,开始挥霍时光";
//我们将字符串转换为数组
byte[] s2=s.getBytes();
fos.write(s2);
fos.flush();

结果如下: