研究字符流之文件的写入与读出的一些方法2

本文深入探讨了Java中字符缓冲流(BufferedReader和BufferedWriter)的使用方法,包括如何通过缓冲读取和写入文件来提升效率,以及利用缓冲流复制文件的具体实现。
/*
 * 字符缓冲流(字符缓冲区)
 * 定义:为了提高读写的能力,本身没有读写的能力,要想进行读写就必须借助于字符流实现.
 * 可以将缓冲流类比于催化剂或者高速的小车
 * 字符缓冲流分类:
 * 字符缓冲读入流:BufferedReader   没有读的能力
 * 字符缓冲写出流:BufferedWriter   没有写的能力
 */



import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedReader_and_BufferedWriter {

	public static void main(String[] args) throws Exception {
		//字符缓冲写出流
		//BufferedWriter1();
		//字符缓冲读入流
		//BufferedReader1();
		//使用缓冲流实现文件的复制
		CopyTXT();

	}
	//字符缓冲读入流
    private static void BufferedReader1() throws IOException {
		BufferedReader bufferedReader=new BufferedReader(new FileReader("Test002.txt"));
		//一次读一个字符
/*
		int num=0;
		while ((num=bufferedReader.read())!=-1) {
			System.out.println((char)num);
		}
*/
		//一次读多个
/*
		char[] ch = new char[1024];
		while (bufferedReader.read(ch)!=-1) {
			System.out.println(ch);
		}
*/
		//一次读一行  readline()
		//原理:一个字符一个字符的读,直到读到换行符为止.然后将所有读到的字符返回
		//注意点:不会将当前的换行符返回 ;返回值就是我们读到的内容.如果读完了,返回null
/*
		String data=null;
		while ((data=bufferedReader.readLine())!=null) {
			System.out.print(data);
			//换行
			System.out.println();
		}
*/
		bufferedReader.close();
	}
	//字符缓冲写出流
	private static void BufferedWriter1() throws IOException {
		BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter("Test002.txt"));
		bufferedWriter.write("数风流人物,还看今朝!");
		//换行
		//bufferedWriter.newLine();
		bufferedWriter.close();
		
	}
	//使用缓冲流实现文件的复制
	private static void CopyTXT() throws IOException {
		BufferedReader bufferedReader=new BufferedReader(new FileReader("test002.txt"));
		BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter("test003.txt"));
		//读写
				//使用一次读一个
		/*		
				int num =0 ;
				while ((num = bufferedReader.read()) != -1) {
					bufferedWriter.write(num);//可以实现自动转换
					fileWriter.flush();
				}
		*/
				//使用一次读多行
		/*
				char[] arr = new char[1024];
				while (( bufferedReader.read(arr)) != -1) {
					bufferedWriter.write(num);//可以实现自动转换
					fileWriter.flush();
				}
		*/
				//使用一次读一行
			
				String data = null;
				while ((data = bufferedReader.readLine()) != null) {
					bufferedWriter.write(data);
					bufferedWriter.newLine();
					bufferedWriter.flush();
				}
			
				bufferedReader.close();
				bufferedWriter.close();
	}

}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值