使用FileOutputStream将数据写入文件 | 带你学《Java语言高级特性》之五十三

简介: 上一节中我们了解了OutputStream的相关知识,现在让我们来一起使用其子类FileOutputStream来实现对文件内容的写入操作吧。

上一篇:字节输出流之OutputStream | 带你学《Java语言高级特性》之五十二

上一节中我们了解了OutputStream的相关知识,现在让我们来一起使用其子类FileOutputStream来实现对文件内容的写入操作吧。

【本节目标】
通过阅读本节内容,你将了解到FileOutputStream类对象的几种构造方式,结合具体实例实现对文件内容的写入功能,并有意识的去关闭流对象节省系统资源。

使用FileOutputStream将数据写入文件

image.png
FileOutputStream类

因为最终都需要发生向上转型的处理关系,所以对于此时的FileOutputStream子类核心的关注点就可以放在构造方法上了。

  • 【覆盖】构造方法:public FileOutputStream(File file) throws FileNotFoundException;
  • 【追加】构造方法:public FileOutputStream(File file, boolean append) throws FileNotFoundException

范例:使用FileOutputStream类实现内容输出

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("D:"+ File.separator + "hello" + File.separator + "mldn.txt");  //1.指定要操作文件的路径
        if(!file.getParentFile().exists()){   //文件不存在
            file.getParentFile().mkdirs();   //创建父目录
        }
        OutputStream output=new FileOutputStream(file);  //2.通过子类实例化
        String str="www.mldn.cn";   //要输出的文件内容
        output.write(str.getBytes());   // 3.将字符串变为字节数组
        output.close();   //4.关闭资源
    }
}

本程序是采用了最为标准的形式实现了输出的操作处理,并且在整体的处理之中,只是创建了文件的父目录,但是并没有创建文件,而在执行后发现文件可以自动帮助用户创建。另外要注意的是,由于OutputStream的子类也属于AutoCloseable的接口子类,所以对于close()方法也可以简化使用。

范例:自动关闭处理

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("D:"+ File.separator + "hello" + File.separator + "mldn.txt");  //1.指定要操作文件的路径
        if(!file.getParentFile().exists()){   //文件不存在
            file.getParentFile().mkdirs();   //创建父目录
        }
        try(OutputStream output=new FileOutputStream(file,true)) { //2.通过子类实例化
            String str="www.mldn.cn\r\n";   //要输出的文件内容
            output.write(str.getBytes());   // 3.将字符串变为字节数组
        }catch(IOException e) {
            e.printStackTrace();
        }
    }
}

是否使用自动关闭取决于项目的整体结构,另外还需要提醒的是,整个的程序里面最终是输出了一组的字节数据,但是千万不要忘记了,OutputStream类之中定义的输出方法一共有三种。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:有出有入:使用字节输入流 | 带你学《Java语言高级特性》之五十四
更多Java面向对象编程文章查看此处

相关文章
|
4天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
17 0
|
2天前
|
存储 监控 Java
如何在Java中实现等待文件修改后再读取数据的功能?
如何在Java中实现等待文件修改后再读取数据的功能?
6 0
|
2天前
|
存储 Java 数据格式
Java实战:轻松掌握文件重命名与路径提取技巧
Java实战:轻松掌握文件重命名与路径提取技巧
8 0
|
2天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
8 0
|
4天前
|
存储 Java Linux
【Java EE】 文件IO的使用以及流操作
【Java EE】 文件IO的使用以及流操作
|
5天前
|
安全 Java 网络安全
深入理解Java异常处理网络安全与信息安全:保护数据的关键策略
【4月更文挑战第29天】本文将深入探讨Java中的异常处理机制,包括异常的概念、分类、捕获和处理等方面。通过详细的解析和实例演示,帮助读者更好地理解Java异常处理的原理和应用。 【4月更文挑战第29天】在数字化时代,数据成为最宝贵的资产之一。随着网络攻击的日益猖獗,了解并实施有效的网络安全和信息保护措施变得至关重要。本文将深入探讨网络安全漏洞的概念、加密技术的重要性以及提升个人和企业的安全意识的必要性。我们将分析当前的安全挑战,并提供一系列实用的防护策略,旨在帮助读者构建一个更加安全的数字环境。
|
5天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
|
5天前
|
Java
Java语言---面向对象的三大特征之继承
Java语言---面向对象的三大特征之继承
|
5天前
|
存储 Java
Java语言--->数据类型转化以及运算符
本文讲述了Java中的基本数据类型转换和运算符。在转换中,布尔型除外的8种类型可通过默认或强制转换相互转化,如`byte->short->int->long->float->double`。默认转换发生在不同类型运算时,系统会转为更大容量类型。强制转换可能引起精度损失或溢出。运算符包括算术(如+可做加法或字符串拼接)、比较、逻辑和赋值运算符。比较运算符如`==`、`<`等产生`boolean`结果,逻辑运算符`&&`、`||`具有短路效应。赋值运算符如`+=`简化了赋值过程。运算符的优先级也进行了简要说明。
|
5天前
|
Java 编译器 程序员
Java语言基础
Java语言基础概览:涵盖关键字(全小写,如`image.png`所示),保留字(如`goto`、`const`),标识符命名规则(避免数字开头和保留字),注释(单行`//`,多行`/*...*/`,及Javadoc注释)以及变量(按数据类型:byte, short, int, long, float, double, char, boolean,注意声明规则和默认类型)。