IO练习

博客围绕将C盘文本文件复制到E盘展开,介绍了三种思路。思路一是用字符读取流关联文件,创建存储目的,进行读写操作并关闭流;思路二是创建临时容器缓存字符并记录读取字符数;思路三提及了BufferReader和BufferWriter。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

将C盘的一个文本文件复制到E盘

思路一:

1,读取一个已有的文本文件,使用字符读取流和文件相关联

2,创建一个目的,用于存储读到数据

3,频繁的读写操作

4,关闭流资源

代码示例一:

public class CopyTextTest {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

		//1,读取一个已有的文本文件,使用字符读取流和文件相关联。
		FileReader fr = new FileReader("C:\\Demo.txt");
		//2,创建一个目的,用于存储读到数据。
		FileWriter fw = new FileWriter("E:\\copytext_1.txt");
		//3,频繁的读写操作。
		int ch = 0;
		while((ch=fr.read())!=-1){
			fw.write(ch);
		}
		//4,关闭流资源。 
		
		fw.close();
		fr.close();
	}

}

 

思路二:

1,创建一个临时容器,用于缓存读取到的字符。

2,定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数 )

代码示例二:

public class CopyTextTest_2 {

	private static final int BUFFER_SIZE = 1024;

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		FileReader fr = null;
		FileWriter fw = null;
		try {
			fr = new FileReader("C:\\Demo.txt");
			fw = new FileWriter("E:\\copytest_2.txt");
			
			//创建一个临时容器,用于缓存读取到的字符。
			char[] buf = new char[BUFFER_SIZE];//这就是缓冲区。 
			
			//定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数 )
			int len = 0;
			
			while((len=fr.read(buf))!=-1){
				fw.write(buf, 0, len);
			}
			
		} catch (Exception e) {
//			System.out.println("读写失败");
			throw new RuntimeException("读写失败");
		}finally{
			if(fw!=null)
				try {
					fw.close();
				} catch (IOException e) {
					
					e.printStackTrace();
				}
			if(fr!=null)
				try {
					fr.close();
				} catch (IOException e) {
					
					e.printStackTrace();
				}
		}
	}

}

 

思路三:BufferReader&BufferWriter

public class CopyTextByBufTest {
	public static void main(String[] args) throws IOException {

		FileReader fr = new FileReader("C:\\Demo.txt");		
		BufferedReader bufr = new BufferedReader(fr);
		
		FileWriter fw = new FileWriter("E:\\buf_copy.txt");
		BufferedWriter bufw = new BufferedWriter(fw);

		String line = null;
		while((line=bufr.readLine())!=null){
			bufw.write(line);
			bufw.newLine();
			bufw.flush();
		}
		bufw.close();
		bufr.close();
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值