java字符流

FileWriter


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

public class Demo {
	
	/*
	 * 	FileWriter:用来写入字符文件的便捷类。
	 *  父类:OutputStreamWriter
	 *  FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream。 
	 * 
	 */
	public static void main(String[] args) throws IOException {
		//1:创建字符输出便捷流
		FileWriter fw = new FileWriter("a.txt");
		//2:写数据
		fw.write("你好吗");
		//3:关闭流
		fw.close();
		
	}

}

FileReader


import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Demo {
	
	/*
	 * FileReader:用来读取字符文件的便捷类。
	 * 父类:InputStreamReader
	 * FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream。
	 */
	public static void main(String[] args) throws IOException {
		//1:创建字符输入便捷流
		FileReader fr = new FileReader("a.txt");
		//2:读数据
		//2.1 一次读取一个字符
		/*int num = 0;
		while((num = fr.read())!=-1){
			System.out.print((char)num);
		}*/
		//2.2 一次读取一个字符数组
		char[] ch = new char[1024*1024];
		int num = 0;
		while((num = fr.read(ch))!=-1){
			System.out.print(new String(ch,0,num));
		}
		//3:关闭流
		fr.close();
	}

}

BufferedWriter


import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class Demo {
	/*
	 * BufferedWriter
	 * 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 
	 * 从以下版本开始: JDK1.1 
	 * 
	 * 注意:字符串缓冲区,需要flush,才能写入文件
	 *   一般情况下,1024的倍数刷一下
	 * 注意:close既能刷空,还能关闭,flush只能刷空 
	 * 
	 */
	public static void main(String[] args) throws IOException {
		//1:创建字符缓冲输出流
		//总共创建了3个流对象
		//最外层是字符缓冲流
		//第二层是字符转换流
		//最里层是字节输出流
		BufferedWriter bw = new BufferedWriter(
				new OutputStreamWriter(new FileOutputStream("a.txt")));
		
		//BufferedWriter bw2 = new BufferedWriter(new FileWriter("a.txt"));
		//2:写数据
		bw.write("你好");
		//bw.write("\r\n");
		bw.newLine(); //换行
		bw.write("我很好");
		bw.flush();
		//bw.close();
		bw.write("我可以进入吗?");//Stream closed
		//bw.flush();
		bw.close();
		
	}

}

BufferedReader


import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Demo {
	
	/*
	 * BufferedReader
	 * 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 
	 * 注意:字符缓冲流
	 *     一次读取一行  readLine()
	 */
	public static void main(String[] args) {
		//1:创建字符缓冲输入流
		BufferedReader br = null;
		try {
			 br = new BufferedReader(
					 new InputStreamReader(new FileInputStream("斗破苍穹.txt"), "utf-8"));
		  //2:读取数据
			 //2.1 一次读取一个字符
			 /*int num = 0;
			 while((num = br.read())!=-1){
				 System.out.print((char)num);
			 }*/
			 //2.2 一次读取一个字符数组
			/* int num = 0;
			 char[] ch = new char[1024*1024];
			 while((num = br.read(ch))!=-1){
				 System.out.print(new String(ch,0,num));
			 }*/
			 //2.3一次读取一行
			 String line = null;
			 while((line = br.readLine())!=null){
				 System.out.println(line);
			 }
		} catch (IOException e) {
			e.printStackTrace();
			
		}finally{
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值