上一篇:字节输出流之OutputStream | 带你学《Java语言高级特性》之五十二
上一节中我们了解了OutputStream的相关知识,现在让我们来一起使用其子类FileOutputStream来实现对文件内容的写入操作吧。
【本节目标】
通过阅读本节内容,你将了解到FileOutputStream类对象的几种构造方式,结合具体实例实现对文件内容的写入功能,并有意识的去关闭流对象节省系统资源。
使用FileOutputStream将数据写入文件
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的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学