文件字节流输出(文件写操作)

文件字节流输出操作用到的包:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

1、文件字节流输出(FileOutputStream)简介:

  • 1.1、outputStream:outputStream是一个抽象类,此抽象类时所有字节输出流的超类。
  • FileOutputStream extends outputStream,
  • FileOutputStream:文件字节输出流;
  • **作用:**是将内存中的数据写入硬盘文件中,
  • 1.2、常用到的两个构造方法
    * 1)、FileOutputStream(String name) : 向一个具有指定名称的文件中写入数据的文件字节输出流
    * 2)、FileOutputStream(File file) : 向File对象表示文件重写入数据的文件字节输出流
  • 构造方法中的参数:
  • String name : 一个文件的指定路径;
  • File file : 一个指定的文件
  • 1.3、带参数构造方法的作用:
  • 1)、创建一个FileOutputStream对象;
  • 2)、如果指定的文件不存在,会根据参数中指定的文件或者文件路径创建一个空文件;
  • 3)、创建的FileOutputStream对象指向文件。
  • FileOutputStream将内存中的数据写出到硬盘文件的步骤:java程序–>JVM(java虚拟机)–>OS(操作系统)–>OS写数据的方法–>将数据写入到文件中
  • ***字节输出流实现步骤
  •  1)、创建一个FileOutputStream对象,使用它的构造方法传递文件的位置;
    
  •        2)、此对象调用write方法,将数据写入到文件中;
    
  •        3)、数据写入完成后,释放资源。
    

2、代码实现

2.1、文件写操作

//创建FileOutputStream对象,传递文件字节流写出的位置
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream("MyBatis01\\fileOutputStream.txt");
        //向文件中写入字节数据,项文件中写入一个字节
        fos.write(100);

        //向文件中写入多个字节,使用字节数组作为参数
        byte[] bytes = {-10,-20,-30,12,99,98};
        //如果字节数组中的第一个字节是负数,则第一个字节会和第二个字节合成中文,一起写入文件;
        //如果字节数组的第一个字节是0~127的整数,则程序会查询ASCII表,然后将结果写入文件
        fos.write(bytes); //鲮?cb

        //向文件写入指定长度的字节
        byte[] bytes2 = {90,91,92,93,94,95,96,97,98,99};
        fos.write(bytes2,2,5); //将bytes2字节数组,从第2索引位置,写入5个字符

        //将String字符串转换成字节数组写入到文件
        byte[] bytes3 = "哈喽".getBytes();
        fos.write(bytes3);

2.2、上边的文件字节输出流写入文件中能发现,每次调用write方法向文件写数据都会覆盖原先已写入的数据,实际上是每次调用write方法都会重新生成一个新文件来覆盖源文件,然后向新文件中写入数据。
文件续写开关:
如果想要向文件中追加写数据或者换行写数据需要用到FileOutputStream的构造方法FileOutputStream(String name,boolean append)或者FileOutputStream(File file,boolean append)
参数:File file/String name:写入数据的文件/文件路径
boolean append:续写文件开关,true:追加(续写)文件,false:创建一个新文件,覆盖掉源文件

 FileOutputStream fos1 = new FileOutputStream("MyBatis01\\fileAppend.txt",true);
        fos1.write("哈喽!世界!!".getBytes());
        fos1.write("\r\n".getBytes());  //\r\n  :  Windows中的换行
        fos1.write("这是换行后的续写!!!".getBytes());
        //关闭资源
        fos.close();
    }catch (IOException e){

    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值