文件字节输出流FileOutputStream
思路:
输入流:是相对于应用程序(Java应用程序)而言的,打开输出流就是打开应用程序到目的地(存放数据的文件)的通道,然后后续才可以对再通过该通道用写方法向这个目的地写入数据。
基本步骤:
1、指定将数据输出到的目的地(存放数据的文件)
2、创建指向该目的的输出流
3、将数据通过流写入
4、关闭输出流
如果对写入的需求比较简单,就使用OutputStream
类的子类FileOutputStream
类就可以了。需要注意的是,如果写入到该文件的时候,如果该文件不存在,则会创建该文件。如果该文件已经存在,则默认会刷新该文件(清空)。
创建指向目的地的输出流:
FileOutputStream
类构造方法:
FileOutputStream(String name);
FileOutputStream(File file);
FileOutputStream(String name,boolean append);
FileOutputStream(File file,boolean append);
可以直接指定文件名或者创建File类对象来创建输出流。
append:如果参数append取true,说明该文件能够追加,就不会被清空。如果参数append取false,说明该文件不能追加,每次写入该文件都会清洗(清空)。
同时也需要用IOException
来捕获异常。
write
方法以字节为单位向目的地写入数据:
使用FileOutputStream
里的write
方法向目的地写入数据:
void write(byte b[]); //向目的地写入一个字节数组
void write(byte b[],int off,int len); //向目的地写入一个长度为len的字节数组,从该数组的off位置 //开始
上手测试:
public class TestIO {
public static void main(String[] args) {
//1、指定输出的目的地
File file = new File("test.txt");
//2、新建想要向目的地写入的数据(字节数组)
byte b[]="新年快乐".getBytes();
try {
//3、创建指向目的地的输出流
FileOutputStream out = new FileOutputStream(file,true);
//4、通过输出流向目的地写入数据
out.write(b);
//5、关闭缓冲区并且关闭输出流
out.flush();
out.close();
} catch (IOException e) {//6、捕获异常
e.printStackTrace();
}
}
}
总结:
-
指定目的地
用File类对象或者文件名指定。
-
创建指向该目的地的输出流
用
FileOutputStream
创建输出流,可以添加参数append指定目的地文件是否能够追加,默认是false。 -
通过输出流向目的地写入数据
用
write()
方法将字节数组通过输出流写到目的地里。
指定目的地文件是否能够追加,默认是false。 -
通过输出流向目的地写入数据
用
write()
方法将字节数组通过输出流写到目的地里。 -
关闭输出流