
FileOutputStream 主要是字节流类型的输出流,使用FileOutputStream流可以写入字节数据到目标文件。
什么是FileOutputStream
FileOutputStream是Java标准库提供的最基本的输出流,专用于输出原始字节流如图像数据等,其继承OutputStream类,拥有输出流的基本特性。
FileOutputStream类详解
FileOutputStream继承关系
FileOutputStream继承了OutputStream(字节输出流超类),如下图所示:

FileOutputStream构造方法
1、FileOutputStream(File file):创建文件输出流以写入由指定的 File对象表示的文件。 2、FileOutputStream(File file, boolean append)创建文件输出流以写入由指定的 File对象表示的文件。 3、FileOutputStream(FileDescriptor fdObj)创建文件输出流以写入指定的文件描述符,表示与文件系统中实际文件的现有连接。 4、FileOutputStream(String name)创建文件输出流以指定的名称写入文件。 5、FileOutputStream(String name, boolean append)创建文件输出流以指定的名称写入文件
FileOutputStream方法摘要
字节流写数据的三种方式:
1.将指定的字节写入此文件输出流,依次写一个字节数据
void write (int b)
2.将b.length字节从指定的字节数组写入此文件输出流,一次写一个数组的数据
void write (byte[] b)
3.将length字节从指定的字节数组开始,从偏移量off开始写入此文件输出流,一次写一个字节数组的部分数据
void write (byte[] b,int off,int length)
FileOutputStream代码示例
FileOutputStream三种写入文件方式,代码如下:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* FileOutputStream三种写入文件方式:
*/
public class FileOutputStreamDemo01 {
public static void main(String[] args) throws IOException {
//创建文件输入流 指定写入文件:
FileOutputStream fos=new FileOutputStream("D:\\mikechen\\jiagou.txt");
/**
* 方式一:将指定字节写入文件
*/
fos.write(97);
fos.write(98);
fos.write(99);
/**
* 方式二:将指定字节数组写入此文件
*/
byte[] by={'H','E','L','L','O'};
fos.write(by);
/**
* 方式三:指定片段写入
*/
//最后一定记得关闭,释放资源
fos.write(by,1,2);
fos.close();
}
}
FileOutputStream注意的细节
- new FileOutputStream 的时候,如果目标文件不存在,那么会先创建目标文件,然后再写入,如果目标文件所在的文件夹不存在,则抛出异常;
- new FileOutputStream(file) 如果目标文件已经存在,那么会先清空 目标文件的数据,然后再写入新的数据;
- 写入数据的时候如果需要以追加的形式写入,那么需要使用new FileOutputStream(file,true) 这个构造函数;
- 使用write(int b)方法的时候,虽然参数接受的一个int类型的数据,但是实际上只会把数据的低八位写出,其他24位丢弃。
mikechen睿哥
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。