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年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》