【Java】Writer,Reader及其操作

相关其他博客:
IO体系
File类介绍
InputStream,OutputStream

Reader

java.lang.Object
java.io.Reader

public abstract class Reader
extends Object
implements Readable, Closeable

Writer

java.lang.Object
java.io.Writer

public abstract class Writer
extends Object
implements Appendable, Closeable, Flushable

用于读取字符流的抽象类。 子类必须实现的唯一方法是read(char [],int,int)和close()。 然而,大多数子类将覆盖这里定义的一些方法,以便提供更高的效率。

使用字符流读取 高效 FileReader BufferedReader

		File file = new File("test.txt");
		if(!file.exists()) {
			file.createNewFile();
		}
		
		//根据文件对象创建文件字符读取流
		FileReader fr = new FileReader(file);
		//根据文件字符读取流创建缓存字符读取流
		BufferedReader reader = new BufferedReader(fr);
		String str = null;
		
		while( (str=reader.readLine())!=null) {//一次读取一行数据
			System.out.println(str);
		}
		
		//关闭资源
		reader.close();
		fr.close();

//输出
hello world!黄骏捷
		File file = new File("test3");
		if(!file.exists()) {
			file.createNewFile();
		}
		
		//创建字符写入流
		FileWriter fw = new FileWriter(file);
		//将数据包装到缓冲区字符写入流中
		BufferedWriter writer = new BufferedWriter(fw);
		
		for(int i=0; i<3; i++) {
			String str = "咖啡"+i;
			writer.write(str);	//一次写入字符串
			//添加分隔符
			writer.newLine();
		}
		
		writer.flush();//刷新缓冲区
		writer.close();
		fw.close();

文件复制

		FileReader fr = new FileReader(new File("test1.txt"));
		FileWriter fw = new FileWriter(new File("test2.txt"));
		
		//缓存字符流
		BufferedReader reader = new BufferedReader(fr);
		BufferedWriter writer = new BufferedWriter(fw);
		
		String str=null;
		while( (str=reader.readLine())!=null) {
			//写入文件中
			writer.write(str);
			//创建新的一行
			writer.newLine();
		}
		
		//关闭资源
		writer.flush();
		writer.close();
		reader.close();
		fw.close();
		fr.close();

DateOutputStream操作

	File file = new File("C:\\Users\\27266\\Desktop\\Test.txt1");
		if(!file.exists()) {
			file.createNewFile();
		}
		
		OutputStream out = new FileOutputStream(file);
		DataOutputStream ds = new DataOutputStream(out);
		ds.writeInt(12);
		ds.writeBoolean(true);
		ds.writeFloat(12.34f);
		ds.writeUTF("hello world");
		ds.close();
		System.out.println("-----------------------------------------");
		
		InputStream in = new FileInputStream(file);
		DataInputStream dp = new DataInputStream(in);
		int a = dp.readInt();
		boolean b =dp.readBoolean();
		float c =dp.readFloat();
		String d =dp.readUTF();
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);

//操作:
-----------------------------------------
12
true
12.34
hello world

发布了66 篇原创文章 · 获赞 45 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ACofKing/article/details/90246145