文件字节输出流:写字节数据到文件(FileOutputStream,write,flush,close)

1、不追加的情况 

  •  创建一个字节输出流 管道 通向目标文件 路径 ,每次运行都会 先清空之前的数据,写新的数据进入
package com.csdn.d2_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStreamDemo04 {

    public static void main(String[] args) throws IOException {

        //1.创建一个文件字节输出流管道与目标文件接通,文件不用创建,自动生成文件
        //每次运行都会 先清空之前的数据,写新的数据进入
        OutputStream os = new FileOutputStream("src\\hard.txt");

        //2.写数据到 hard.txt
        os.write('a');//a
        os.write(98);//b
        os.write('吃');//
        os.write("\r\n".getBytes());

        byte[] buffer = {'a', 97, 98, 99};
        os.write(buffer);
        os.write("\r\n".getBytes());

        byte[] buffer2 = "我是中国人".getBytes();
        os.write(buffer2);
        os.write("\r\n".getBytes());

        byte[] buffer3 = {'a', 97, 98, 99};
        os.write(buffer3, 0, 3);

        //写数据,必须刷新数据,可以继续使用流
        os.flush();
        //释放资源,包含了刷新的!关闭后流不可以使用
        os.close();
    }
}
  • 无论执行多少次程序,都不会追加, 每次运行都会 先清空之前的数据,写新的数据进入

文件字节输出流:写字节数据到文件(FileOutputStream,write,flush,close)_第1张图片

2、追加的情况

  • 创建一个 追加 数据的字节输出流 管道 通向目标文件 路径
package com.csdn.d2_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStreamDemo04 {

    public static void main(String[] args) throws IOException {

        //1.创建一个追加文件字节输出流管道与目标文件接通,文件不用创建,自动生成文件
        OutputStream os = new FileOutputStream("src\\hard.txt", true);

        //2.写数据到 hard.txt
        os.write('a');//a
        os.write(98);//b
        os.write('吃');//
        os.write("\r\n".getBytes());

        byte[] buffer = {'a', 97, 98, 99};
        os.write(buffer);
        os.write("\r\n".getBytes());

        byte[] buffer2 = "我是中国人".getBytes();
        os.write(buffer2);
        os.write("\r\n".getBytes());

        byte[] buffer3 = {'a', 97, 98, 99};
        os.write(buffer3, 0, 3);

        //写数据,必须刷新数据,可以继续使用流
        os.flush();
        //释放资源,包含了刷新的!关闭后流不可以使用
        os.close();
    }
}
  •  程序执行 3 次,发生追加效果,出现3次结果,不会删除之前的数据文件字节输出流:写字节数据到文件(FileOutputStream,write,flush,close)_第2张图片
  •  作用:以 内存 为基准,把内存中的数据以字节的形式写出到磁盘文件中去的流。
构造器 说明
public FileOutputStream(File file) 创建字节输出流 管道 与源文件 对象 接通
public FileOutputStream(File file,boolean append) 创建字节输出流  管道 与源文件 对象 接通,可追加数据
public FileOutputStream(String filepath) 创建字节输出流 管道 与 源文件 路径 接通
public FileOutputStream(String filepath,boolean append) 创建字节输出流 管道 与 源文件 路径 接通,可追加数据
  • 写数据出去的API
方法名称 说明
public void write(int a) 写一个字节出去
public void write(byte [ ] buffer ) 写一个字节数组出去
public void write(byte [ ] buffer,int pos,int len) 写一个字节数组的一部分出去
  • 流的关闭与刷新
方法 说明
flush() 刷新流,还可以继续写数据
close() 关闭流,释放资源,但是在关闭之前会先刷新流。一旦关闭,就不能再写数据

3、字节输出流如何实现写出去的数据能换行

  • os.write(“ \ r \ n ”.getBytes())

4、如何让写出去的数据能成功生效?

  • flush()刷新数
  • close()方法是关闭流,关闭包含刷新,关闭后流不可以继续使用了。

你可能感兴趣的:(#,File,和,IO,流,开发语言,java,IO,OutputStream)