首页 > 软件开发 > 编程语言 >

Java输出流FileOutputStream使用详解

来源:互联网 2023-03-17 00:21:03 366

Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

方法/步骤

  • 1

    前面介绍了如何应用输入流FileInputStream从本地文件读取数据。本节介绍应用输出流FileOutputStream把数据写入本地文件。SlU办公区 - 实用经验教程分享!

    用FileOutputStream写入文件流程如下:SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 2

    使用FileOutputStream写入文件的过程同使用FileInputStream过程相同,都是先用File类打开本地文件,实例化输入输出流,然后调用流的读写方法读取或写入数据,最后关闭流。SlU办公区 - 实用经验教程分享!

    FileOutputStream的构造方法SlU办公区 - 实用经验教程分享!

    FileOutputStream提供了4个常用构造方法,用于实例化FileOutputStream对象,不同的场景使用不同的构造方法。SlU办公区 - 实用经验教程分享!

    场景1:使用File对象打开本地文件,从文件读取数据。SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 3

    场景2:不使用File对象,直接传入文件路径。SlU办公区 - 实用经验教程分享!

    FileOutputStream的构造方法允许直接传入文件路径,而无须使用File对象。查看该构造方法的源代码,其内部使用了File对象打开文件。SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 3本页面未经许可获取自百度经验
  • 4

    场景3:打开文件,在文件的尾部追加写入数据。SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 5

    场景要求在文件的尾部写入数据,由于前面两个构造函数都是文件开始写入数据(覆盖原文件),因此不能使用前面2个场景的构造函数。FileOutputStream提供了另外两个构构造方法,分别是:SlU办公区 - 实用经验教程分享!

    FileOutputStream(File file, boolean append);SlU办公区 - 实用经验教程分享!

    FileOutputStream(String name, boolean append);SlU办公区 - 实用经验教程分享!

    同前面的构造方法相比,这两个构造方法各多了一个boolean参数append。append参数为true时,数据从文件尾部写入;append参数为false时,数据覆盖原文件。SlU办公区 - 实用经验教程分享!

    FileOutputStream的写入方法SlU办公区 - 实用经验教程分享!

    FileOutputStream类提供了多种文件写入方法,可以单独写一个字节到文件,也可以写一个byte数组到文件,也可以取byte数组的部分数据写入到文件。SlU办公区 - 实用经验教程分享!

    例1:使用write(int b)方法写入文件。SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 6

    例子程序首先调用File类的createNewFile()创建new.txt文件,然后将str内容写入到新创建的new.txt文件中。SlU办公区 - 实用经验教程分享!

    例2:使用write(byte[] b)方法写入文件。SlU办公区 - 实用经验教程分享!

    write(byte[] b)方法用于将b.length个字节从指定的byte数组写入到输出流。SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 7

    String类的getBytes()方法可以将字符串转换为byte数组,使用FileOutputStream 类的write(byte[] b)方法,将转换的byte数组写入文件。SlU办公区 - 实用经验教程分享!

    例3:使用write(byte[] b,int off,int len)方法写入文件。SlU办公区 - 实用经验教程分享!

    该方法将len个字节的数据,并从数组b的off位置开始写入到输出流。SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 8

    程序把指定的str内容写入到文件,fos.write(str.getBytes(),5,10)语句的第一个参数为byte数组,第二个参数5是从byte数组的下标5开始,第三个参数是写入的字节数。程序执行后,写入的内容为“is new file”。SlU办公区 - 实用经验教程分享!

    使用该方法一定要注意数组越界的问题。例如,byte数组长度为20,从第下标12开始,写入15个字节到文件,就会造成数组越界,程序报错。SlU办公区 - 实用经验教程分享!

    例4:使用FileOutputStream复制文件SlU办公区 - 实用经验教程分享!

    复制文件是将源文件数据写入到新文件,在实际编程中,实现文件的复制有很多种方法,本案例使用FileInputStream和FileOutputStream实现文件的复制。SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 9

    代码中的copyFile完成文件的复制,在复制之前,先判断一下源文件是否存在,然后申请一个byte数组,用于存储读取的源文件数据,该数组大小与源文件总字节数相同,读取成功后,再将数组内容写入到目标文件。程序输出结果如下图所示:SlU办公区 - 实用经验教程分享!

    Java输出流FileOutputStream使用详解SlU办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!SlU办公区 - 实用经验教程分享!


    标签: JAVA编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码