JavaSE基础(121) FileOutputStream(字节流-文件输出流)将数据写入到一个文件中

FileOutputStream:文件输出流是用于将数据写入 FileFileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 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();
	}

}

 

你可能感兴趣的