文件字节输出流:写字节数据到文件

1、不追加的情况

  • 创建一个字节输出流 管道 通向目标文件 路径 ,每次运行都会 先清空之前的数据,写新的数据进入
java 复制代码
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();
    }
}
  • 无论执行多少次程序,都不会追加, 每次运行都会 先清空之前的数据,写新的数据进入

2、追加的情况

  • 创建一个 追加 数据的字节输出流 管道 通向目标文件 路径。
java 复制代码
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次结果,不会删除之前的数据
相关推荐
wwww.wwww3 分钟前
qt程序执行时报错:无法定位程序输入点,但是通过IDE的run又可以正常的运行。
开发语言·ide·qt
乌鸦乌鸦你的小虎牙3 小时前
qt 5.12.8 配置报错(交叉编译环境)
开发语言·数据库·qt
无心水3 小时前
【OpenClaw:实战部署】5、全平台部署OpenClaw(Win/Mac/Linux/云服务器)——10分钟跑通第一个本地AI智能体
java·人工智能·ai·智能体·ai智能体·ai架构·openclaw
feifeigo1233 小时前
Leslie人口模型MATLAB实现(中长期人口预测)
开发语言·matlab
写代码的二次猿3 小时前
安装openfold(顺利解决版)
开发语言·python·深度学习
一只大袋鼠4 小时前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
※DX3906※4 小时前
Java排序算法--全面详解面试中涉及的排序
java·开发语言·数据结构·面试·排序算法
笨笨马甲5 小时前
Qt QSS使用指南
开发语言·qt
cur1es5 小时前
【JVM类加载&双亲委派模型&垃圾回收机制】
java·jvm·gc·垃圾回收·类加载·双亲委派模型
Mr.朱鹏6 小时前
JVM-GC垃圾回收案例
java·jvm·spring boot·算法·spring·spring cloud·java-ee