IO流—字符流以及缓冲字符流

本文展示了如何使用Java的FileReader和FileWriter进行文件读写,并通过BufferedReader和BufferedWriter实现带缓冲的高效文件复制。在代码中,详细演示了无缓冲与有缓冲字符流的区别,以及如何处理文件读写过程中的异常和资源关闭。
摘要由CSDN通过智能技术生成
public class IoDemo03 {
	public static void main(String[] args) {
		FileReader fReader = null;
		FileWriter fWriter = null;
		try {
			fReader = new FileReader("abc.txt");
			fWriter = new FileWriter("dest.txt");
			//这种方法也可写入数据
			fWriter.write("      春江花月夜        \r\n ");
			//设置缓冲区,提高速率,只能使用char类型,不加缓冲,挨个字符读
			char[] buffer = new char[1024];
			int temp = 0;
			while((temp = fReader.read(buffer)) != -1) {
				//fWriter.write(buffer);也可
				fWriter.write(buffer,0,temp);
			}
			
			//“\r\n”是win中的换行符,append()方法是在文本后面追加内容。
			fWriter.append("\r\ncopy结束了");
			fWriter.flush();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				if(fWriter!=null) {
					fWriter.close();
				}
				if(fReader!=null) {
					fReader.close();
				}
			} catch (Exception e2) {
			}
		}
	}
}

加入缓冲的字符流:

/**
 * 缓冲字符流。copy工具
 */
public class IoDemo04 {
	public static void main(String[] args) {
		IoDemo04.copyFile("abc.txt", "dest.txt");
	}
	public static void copyFile(String src, String des) {
		BufferedReader bReader = null;
		BufferedWriter bWriter = null;
		try {
			bReader = new BufferedReader(new FileReader(src));
			bWriter = new BufferedWriter(new FileWriter(des));
			//按照行为单位读取
			String temp = "";
			while((temp = bReader.readLine()) != null) {//当为空时表示读完
				bWriter.write(temp);
				bWriter.newLine();//换行
			}
			bWriter.flush();	
			
		} catch (Exception e) {	
			e.printStackTrace();
			
		}finally {
			try {
				if(bReader != null) {
					bReader.close();
				}
				if(bWriter !=null) {
					bWriter.close();
				}				
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值