Java基础----Reader、Writer

本文详细介绍了 Java 中的 IO 流操作,包括 OutputStreamWriter 和 InputStreamReader 的使用方法,并演示了如何通过不同方式复制文件内容。此外,还对比了 close() 和 flush() 方法的区别。

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

package IO_02;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/*
 * 面试题:close()和flush()的区别?
 * A:close()关闭流对象,但是先刷新一次缓冲区。关闭之后,流对象不可以继续再使用了。
 * B:flush()仅仅刷新缓冲区,刷新之后,流对象还可以继续使用。
 */
public class ReaderWriterDemo {
	public static void main(String[] args) throws IOException {
		OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream("fos.txt"),"UTF-8");
		fos.write("我爱Java!!!");
		fos.flush();
		fos.close();
		
		//My eclipse environment is "GBK"
		InputStreamReader isr = new InputStreamReader(new FileInputStream("fos.txt"));//鎴戠埍Java锛侊紒锛?
//		InputStreamReader isr = new InputStreamReader(new FileInputStream("fos.txt"),"UTF-8");//我爱Java!!!
//		InputStreamReader isr = new InputStreamReader(new FileInputStream("fos.txt"),"GBK");//鎴戠埍Java锛侊紒锛?
		char[] arr = new char[1024];
		int len = 0;
		while((len = isr.read(arr)) != -1){
			System.out.println(new String(arr,0,len));
		}
		isr.close();
	}
}


package IO_02;

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

//把一个文件里的数据读到另一个文件里
public class FileReaderWriterDemo {
	public static void main(String[] args) throws IOException {
		FileReader fr = new FileReader("a.txt");
		FileWriter fw = new FileWriter("b.txt");
		
		char[] arr = new char[1024];
		int len = 0;
		while((len = fr.read(arr)) != -1){
			fw.write(arr,0,len);
			fw.flush();
		}
		
		fw.close();
		fr.close();
	}
}

package IO_02;

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

public class BufferReaderWriterDemo {
	public static void main(String[] args) throws IOException {
		bufferWriter();
		bufferReader();
	}
	
	public static void bufferWriter() throws IOException{
		BufferedWriter bw = new BufferedWriter(new FileWriter("bw2.txt"));
		for(int i=0;i<10;i++){
			bw.write("hello:"+i);
//			bw.write("\r\n");
			bw.newLine();
			bw.flush();
		}
		bw.close();
	}
	
	public static void bufferReader() throws IOException{
		BufferedReader br = new BufferedReader(new FileReader("bw2.txt"));
		String line = null;
		while((line = br.readLine()) != null){
			System.out.println(line);
		}
		br.close();
	}
}

package IO_02;

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

public class BufferedReaderWriterDemo02 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new FileReader("a.txt"));
		BufferedWriter bw = new BufferedWriter(new FileWriter("c.txt"));
	//第一种方式
//		String line = null;
//		while((line = br.readLine()) != null){
//			bw.write(line);
//			bw.newLine();
//			bw.flush();
//		}
		
		//第二种方式
		char[] buf = new char[1024];
		int len = 0;
		while((len = br.read(buf)) != -1){
			bw.write(buf, 0, len);
			bw.flush();
		}
		
		br.close();
		bw.close();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值