【JavaSE】day09_节点流和高级流

20 篇文章 0 订阅

【JavaSE】day09_节点流和高级流


1.FileOutputStream

1)java.io.FileOutputStream

 * 文件的字节输出流,用于向文件中写出字节。是一个低级流。


2)默认创建的FOS是覆盖写操作。

         * 该覆盖操作是在写内容前将原文件所有数据清除,然后重新写入新内容。


3)还支持一个重载的构造方法,第二个参数传入一个boolean值,若该值为true,则是追加写操作,

   * 即:通过该流写出的数据会在当前文件的末尾写入。 而不是将原来的数据都清除。

具体实现见代码:


package day02;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * java.io.FileOutputStream
 * 文件的字节输出流,用于向文件中写出字节。是一个低级流。
 *
 */
public class FOSDemo1 {
	public static void main(String[] args) throws IOException {
		/*
		 * 默认创建的FOS是覆盖写操作。
		 * 该覆盖操作是在写内容前将原文件所有数据清除,
		 * 然后重新写入新内容。
		 */
		//FileOutputStream fos = new FileOutputStream("fos.txt");
		
		/*
		 * 还支持一个重载的构造方法,第二个参数传入一个
		 * boolean值,若该值为true,则是追加写操作,
		 * 即:通过该流写出的数据会在当前文件的末尾写入。
		 * 而不是将原来的数据都清除。
		 */
		FileOutputStream fos = new FileOutputStream("fos.txt",true);
		
		String str = "一步两步,一步两步像爪牙,像魔鬼的步伐";
		
		byte[] data = str.getBytes();
		
		fos.write(data);
		
		/*
		 * 流使用完毕也要关闭,释放资源!
		 */
		fos.close();
		
	}

}

2.FileInputStream

1)FileInputStream  ---- 低级流,用于读取文件数据的流。

代码:

package day02;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * FileInputStream
 * 低级流,用于读取文件数据的流
 *
 */
public class FISDemo1 {
	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("fos.txt");
		
		byte[] data = new byte[200];
		int len = fis.read(data);
		
		String str = new String(data,0,len);
		System.out.println(str);
		
		fis.close();
	}

}

3.BufferedOutputStream与BufferedInputStream

具体细节见代码:

package day02;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 缓冲流写出数据注意事项:
 */
public class BOSDemo {
	public static void main(String[] args) throws IOException {
		FileOutputStream fos = new FileOutputStream("bos.txt");
		
		BufferedOutputStream bos = new BufferedOutputStream(fos);
		
		String str = "我爱北京天安门";
		byte[] data = str.getBytes();
		
		bos.write(data);
		
		/*
		 * void flush()
		 * 该方法会强制将缓冲区中的数据一次性写出,不管缓冲区
		 * 是否已经装满。频繁调用flush()方法会提高写出次数从
		 * 而降低写出效率,但是会保证写出的及时性。
		 */
		bos.flush();
		
		/*
		 * 当关闭缓冲流的时候,它会首先调用flush()将剩余在缓冲区
		 * 中的数据先写出,然后再将它处理的流关闭后,才将自己关闭。
		 */
		bos.close();
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值