IO流之字节字符缓冲流

IO里面的缓冲流分,字节缓冲流和字符缓冲流。

字节缓冲流:new BufferedInputStream( new FileInputStream(srcFile) )

                      new BufferedOutputStream( new FileOutputStream(destFile) );

       字节缓冲流没有别的新加的方法,用的时候最好加上,据说加上了性能好一些。

字符缓冲流:bufferedReader = new BufferedReader(reader);

                      bufferedWriter = new BufferedWriter(writer);

        字符缓冲流,reader 加了 readLine() 方法

                              writer 加了 newLine() 方法

一起来看看代码吧!

1.字节缓冲流实现复制文件

/**
	 * 拷贝文件
	 * @param srcFile 源文件的File对象
	 * @param destFile 目标文件的File对象
	 */
	public static void copyFile(File srcFile, File destFile) {
		BufferedInputStream is = null;
		BufferedOutputStream os = null;
		try {
			
            // 加入缓冲流,因为可能有新加的方法,所以此处不使用 多态,直接实例化该对象
			is = new BufferedInputStream( new FileInputStream(srcFile) );
			os = new BufferedOutputStream( new FileOutputStream(destFile) );
			
			byte [] b = new byte[2048];
			int len = 0;
			
			while( -1 != (len = is.read(b)) ) {
				// 写出
				os.write(b, 0, len);
			}
			os.flush();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				os.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				is.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

2.字符缓冲流实现读写文件(存字符文件)

public static void copyFile(File srcFile, File destFile) {
		try {
			Reader reader = new FileReader(srcFile);
			Writer writer = new FileWriter(destFile);
			
			/**
			 * 建立缓冲流
			 */
			BufferedReader bufferedReader = new BufferedReader(reader);
			BufferedWriter bufferedWriter = new BufferedWriter(writer);
			
			String line = null;
			while( null != (line = bufferedReader.readLine()) ) {
				System.out.println( line );
				bufferedWriter.write(line);
				// 新加一行,和 write("\r\n") 等效
				bufferedWriter.newLine();
			}
			bufferedWriter.flush();
			
			//关闭流...
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值