文件字节流输出操作用到的包:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
1、文件字节流输出(FileOutputStream)简介:
- 1.1、outputStream:outputStream是一个抽象类,此抽象类时所有字节输出流的超类。
- FileOutputStream extends outputStream,
- FileOutputStream:文件字节输出流;
- **作用:**是将内存中的数据写入硬盘文件中,
- 1.2、常用到的两个构造方法:
* 1)、FileOutputStream(String name) : 向一个具有指定名称的文件中写入数据的文件字节输出流
* 2)、FileOutputStream(File file) : 向File对象表示文件重写入数据的文件字节输出流 - 构造方法中的参数:
- String name : 一个文件的指定路径;
- File file : 一个指定的文件
- 1.3、带参数构造方法的作用:
- 1)、创建一个FileOutputStream对象;
- 2)、如果指定的文件不存在,会根据参数中指定的文件或者文件路径创建一个空文件;
- 3)、创建的FileOutputStream对象指向文件。
- FileOutputStream将内存中的数据写出到硬盘文件的步骤:java程序–>JVM(java虚拟机)–>OS(操作系统)–>OS写数据的方法–>将数据写入到文件中
- ***字节输出流实现步骤:
-
1)、创建一个FileOutputStream对象,使用它的构造方法传递文件的位置;
-
2)、此对象调用write方法,将数据写入到文件中;
-
3)、数据写入完成后,释放资源。
2、代码实现
2.1、文件写操作
//创建FileOutputStream对象,传递文件字节流写出的位置
FileOutputStream fos = null;
try {
fos = new FileOutputStream("MyBatis01\\fileOutputStream.txt");
//向文件中写入字节数据,项文件中写入一个字节
fos.write(100);
//向文件中写入多个字节,使用字节数组作为参数
byte[] bytes = {-10,-20,-30,12,99,98};
//如果字节数组中的第一个字节是负数,则第一个字节会和第二个字节合成中文,一起写入文件;
//如果字节数组的第一个字节是0~127的整数,则程序会查询ASCII表,然后将结果写入文件
fos.write(bytes); //鲮?cb
//向文件写入指定长度的字节
byte[] bytes2 = {90,91,92,93,94,95,96,97,98,99};
fos.write(bytes2,2,5); //将bytes2字节数组,从第2索引位置,写入5个字符
//将String字符串转换成字节数组写入到文件
byte[] bytes3 = "哈喽".getBytes();
fos.write(bytes3);
2.2、上边的文件字节输出流写入文件中能发现,每次调用write方法向文件写数据都会覆盖原先已写入的数据,实际上是每次调用write方法都会重新生成一个新文件来覆盖源文件,然后向新文件中写入数据。
文件续写开关:
如果想要向文件中追加写数据或者换行写数据需要用到FileOutputStream的构造方法FileOutputStream(String name,boolean append)或者FileOutputStream(File file,boolean append)
参数:File file/String name:写入数据的文件/文件路径
boolean append:续写文件开关,true:追加(续写)文件,false:创建一个新文件,覆盖掉源文件
FileOutputStream fos1 = new FileOutputStream("MyBatis01\\fileAppend.txt",true);
fos1.write("哈喽!世界!!".getBytes());
fos1.write("\r\n".getBytes()); //\r\n : Windows中的换行
fos1.write("这是换行后的续写!!!".getBytes());
//关闭资源
fos.close();
}catch (IOException e){
}