使用FileOutputStream将数据写入文件 | 带你学《Java语言高级特性》之五十三-阿里云开发者社区

开发者社区> Java开发者> 正文

使用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面向对象编程文章查看此处

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

Java开发者成长课堂

官方博客
官网链接