FileOutputStream:文件输出流是用于将数据写入
File
或FileDescriptor
的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。
FileOutputStream
用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用FileWriter
。
第一步: 创建输出流对象 怎么创建?? ==》 通过FileOutputStream的构造方法创建
构造方法摘要 FileOutputStream(File file)
创建一个向指定File
对象表示的文件中写入数据的文件输出流。FileOutputStream(File file, boolean append)
创建一个向指定File
对象表示的文件中写入数据的文件输出流。FileOutputStream(FileDescriptor fdObj)
创建一个向指定文件描述符处写入数据的输出文件流,该文件描述符表示一个到文件系统中的某个实际文件的现有连接。FileOutputStream(String name)
创建一个向具有指定名称的文件中写入数据的输出文件流。FileOutputStream(String name, boolean append)
创建一个向具有指定name
的文件中写入数据的输出文件流。
第二步:写入内容 怎么写进去?? ==》 通过FileOutputStream的write方法
方法摘要 void
write(byte[] b)
将b.length
个字节从指定 byte 数组写入此文件输出流中。void
write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量off
开始的len
个字节写入此文件输出流。void
write(int b)
将指定字节写入此文件输出流。
第三步:关闭流
ex:
/*** FileOutputStream(字节流-文件输出流) 将数据写入到一个文件: 内存到磁盘:写的操作* 1.创建输出流对象 怎么创建?? ==》通过FileOutputStream的构造方法创建* ①FileOutputStream(File file):创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 * ②FileOutputStream(File file, boolean append):创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 * ③FileOutputStream(FileDescriptor fdObj): 创建一个向指定文件描述符处写入数据的输出文件流,该文件描述符表示一个到文件系统中的某个实际文件的现有连接。 * ④FileOutputStream(String name):创建一个向具有指定名称的文件中写入数据的输出文件流。 * ⑤FileOutputStream(String name, boolean append):创建一个向具有指定 name 的文件中写入数据的输出文件流。 * //true:将字节写入文件末尾处 false:将字节写入到文件开始处 注意:true相当于将内容拼接,而false相当于把新内容直接覆盖原来内容* 注意:连接的一个不存在的文件 会自动创建!!* 2.写入内容 怎么写进去?? ==》 通过FileOutputStream的write方法* ①void write(byte[] b) :将 b.length 个字节从指定 byte 数组写入此文件输出流中。 * ②void write(byte[] b, int off, int len) :将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 * ③void write(int b) : 将指定字节写入此文件输出流。 * 3.关闭流* @author 郑清*/
public class Demo {public static void main(String[] args) throws IOException {//1.创建一个字节输出流,关联磁盘磁盘文件,如果文件存在直接使用,如果不存在,则自动创建,然后将数据写入FileOutputStream fos = new FileOutputStream("D:1/1.txt");//2.写入内容://方式①:写入一个字节 void write(int b) : 将指定字节写入此文件输出流。fos.write(97);//写入的是:a//方式②:写入文字 void write(byte[] b) :将 b.length 个字节从指定 byte 数组写入此文件输出流中。fos.write("这是即将写入的文字".getBytes()); //方式③:写入指定字节 void write(byte[] b, int off, int len) :将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 byte[] b = new byte[] {97,98,99,65,66,67};fos.write(b, 0, 4);//写入从b数组起始位置为0 开始 的4个字节 (在这里写入的即是:abcA)//3.关闭流fos.close();}}