Java中FileOutputStream类的使用

 更新时间:2023年10月11日 15:34:44   作者:楠枬  
java.io.FileOutputStream类是文件输出流,用于将数据写出到文件,下面就来介绍一下Java中FileOutputStream类的使用,具有一定的参考价值,感兴趣的可以了解一下

1.FileOutputStream类的作用

将数据写入到文件中去

2.FileOutputStream类的使用步骤

(1)导入相关类的包

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

(2)创建FileOutputStream类对象

此时会显示异常,可点击红色波浪线,使用快捷键alt+回车,选择第一个添加异常到方法签名,或者自己添加异常到方法签名。

即可创建FileOutputStream类对象

public class FileOutputStreamDemo {
    public static void main(String[] args) throws FileNotFoundException {
        FileOutputStream fos = new FileOutputStream("D:\\新建文件夹\\a.txt");
    }
}
注:在创建字节输出流对象时,参数可以是字符串表示的路径或者是File对象若文件不存在则会创建一个新的文件,但是要保证其父级路径存在若文件已经存在,则会清空文件(即新写入的数据会覆盖之前的内容)

(3)写入数据

调用write方法写入数据

(a).void write(int b) 一次写入一个字节数据

public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        //IOException是FileNotFoundException的父类,因此只写IOException即可
        FileOutputStream fos = new FileOutputStream("D:\\新建文件夹\\a.txt");
        //传入的是int类型数据,但实际写到文件中的是整数在ASCII上对应的字符
        fos.write(97);
        //相同的,抛出异常
    }
}

(b).void write(byte[] b) 一次写入一个字节数组数据

public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\新建文件夹\\a.txt");
        byte[] bytes1 = {97,98,99,100,101};
        fos.write(bytes1);
        //一次写入一个字节数组数据
    }
}

(c).void write(byte[] b,int off,int len) 一次写入一个字节数组的部分数据

public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\新建文件夹\\a.txt");
        byte[] bytes1 = {97,98,99,100,101};
        fos.write(bytes1,2,4);
        //off:起始字节索引,len:写入的字节个数
    }
}

 换行写入数据

想要实现换行写入数据,只需写入换行符即可

public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\新建文件夹\\a.txt");
        //创建一个字符串,内容为换行符
        fos.write(97);
        String str1 = "\r\n";//也可以只写\r或者\n但最好写完整
        //调用getBytes()方法,将字符串中内容转换为字节数组
        byte[] bytes1 = str1.getBytes();
        fos.write(bytes1);
        //同样的,可以用字符串的方式创建较长的数据,再调用getBytes()方法,转换为字节数组
        String str2 = "asdfghjklqwert";
        byte[] bytes2 = str2.getBytes();
        fos.write(bytes2);
    }
}

续写

想要实现续写(在文件原有数据后面接着写入新的数据),只需要在创建文件输出流对象时传入第二个参数true

 即可进行续写

(4)关流

每次使用完流之后都要关流,即断开程序与文件之间的链接

public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\新建文件夹\\a.txt");
        byte[] bytes1 = {97,98,99,100,101};
        fos.write(bytes1,2,4);
        //关流
        fos.close();
    }
}

下面为续写的完整代码,其余代码基本上只需添加关流即可。

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        //创建输出流对象
        FileOutputStream fos = new FileOutputStream("D:\\新建文件夹\\a.txt",true);
        //写入续写数据
        String str = "asdfghjklqwert";
        byte[] bytes = str.getBytes();
        fos.write(bytes);
        //关流
        fos.close();
    }
}

到此这篇关于Java中FileOutputStream类的使用的文章就介绍到这了,更多相关Java FileOutputStream类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java之理解Redis回收算法LRU案例讲解

    Java之理解Redis回收算法LRU案例讲解

    这篇文章主要介绍了Java之理解Redis回收算法LRU案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 使用java获取md5值的两种方法

    使用java获取md5值的两种方法

    本篇文章是对使用java获取md5值的两种方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • hibernate关于session的关闭实例解析

    hibernate关于session的关闭实例解析

    这篇文章主要介绍了hibernate关于session的关闭实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • springboot整合持久层的方法实现

    springboot整合持久层的方法实现

    本文主要介绍了springboot整合持久层的方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 关于Java整合RocketMQ实现生产消费详解

    关于Java整合RocketMQ实现生产消费详解

    这篇文章主要介绍了关于Java整合RocketMQ实现生产消费详解,RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等,需要的朋友可以参考下
    2023-05-05
  • Java SpringBoot整合JSP和MyBatis

    Java SpringBoot整合JSP和MyBatis

    这篇文章主要介绍了SpringBoot如何整合JSP和MyBatis以及SpringBoot的基本设置,感兴趣的小伙伴可以参考阅读
    2023-03-03
  • Java 继承与多态的深入理解

    Java 继承与多态的深入理解

    这篇文章主要介绍了Java 继承与多态的深入理解的相关资料,子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为,需要的朋友可以参考下
    2017-08-08
  • RestTemplate 401 获取错误信息的处理方案

    RestTemplate 401 获取错误信息的处理方案

    这篇文章主要介绍了RestTemplate 401 获取错误信息的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 面试官:详细谈谈Java对象的4种引用方式

    面试官:详细谈谈Java对象的4种引用方式

    这篇文章主要给大家介绍了java面试官常会问到的,关于Java对象的4种引用方式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • SpringCloud之Feign示例详解

    SpringCloud之Feign示例详解

    本篇文章主要介绍了SpringCloud之Feign示例详解,详细的介绍了Feign简介和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01

最新评论