io流笔记第四发用字符流读写

这次用的是字符流来读写,FileReader和FileWriter 这里要注意的是在写的时候要去刷缓存,不然不会显示。但是我们也可以用关流来让系统自动调用一次刷缓存,当我们关流后就不能再进行写入操作了,否则会出异常的换行/windows 用\r\n 但是linux用\n我们也可以系统获得换行符如private static String Line_Sparator=System.getProperty("line.separator");来获得相应的换行符。这里结合之前学过的关流模板进行完整的用字符流异常处理的模板代码。以及演示字符流的读取(循环读到文件末尾) -----一块块地读,效率更高——就是用一个char类型的数组然后System.out.print(new String(buf,0,len));,与之前的提到过的用System.out.print((char)buf[i])是相似的。好了,本次的知识点就这么多了。今天头有点晕了,偷点懒,嘻嘻 大笑下面和之前的一样 上代码:
package cn.hncu.io2;

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

import javax.swing.filechooser.FileFilter;

public class MyFilerReaderWriter {//用字符流写数据时要注意刷缓存
	private static String Line_Sparator=System.getProperty("line.separator");//利用系统 属性来获得相应的换行符
	private static void write2File() throws IOException {
		FileWriter fw=new FileWriter("a.txt");
		fw.write("adfadjk");
//		fw.flush();//刷缓存  否则数据不写出
		fw.write("\r\n湖南城市学院");//windows 用\r\n 但是linux用\n
		//综上,无论是windows还是Linux,“\r\n”都会换行
		fw.write("我编程我快乐"+Line_Sparator+"每天进步一点点");
		
		fw.close();//关流时系统会自动掉用fw.flush.
		//流一旦关闭,就不能再写了,否则会出异常的
	}
	//用字符流异常处理的模板代码
	private static void write2File2() {
		FileWriter fw=null;
		try {
			fw=new FileWriter("e:/abc/a/ae.txt");
			fw.write("随便输");
			fw.flush();
		} catch (IOException e) {
			System.out.println(e.toString());
		}finally{
			if(fw!=null){
				try {
					fw.close();
				} catch (IOException e) {
					throw new RuntimeException("关流失败");
				}
			}
		}
	}
	//演示字符流的读取(循环读到文件末尾) 字符流读取时不用flush,写要
	private static void readFromFile() {
		FileReader fr=null;
		try {
			fr=new FileReader("e:/abc/a/ae.txt");
			int ch=0;
			while((ch=fr.read())!=-1){
				System.out.print((char)ch);
			}
		} catch (IOException e) {
		}finally{
			if(fr!=null){
				try {
					fr.close();
				} catch (IOException e) {
					throw new RuntimeException("关流失败");
				}
			}
		}
	}
	//演示字符流的读取(循环读到文件末尾) -----一块块地读,效率更高
	private static void readFromFile2() {
		FileReader fr=null;
		try {
			fr=new FileReader("e:/abc/a/ae.txt");
			char buf[]=new char[1024];
			int len=0;
			while((len=fr.read(buf))!=-1){
				System.out.print(new String(buf,0,len));
			}
		} catch (IOException e) {
		}finally{
			if(fr!=null){
				try {
					fr.close();
				} catch (IOException e) {
					throw new RuntimeException("关流失败");
				}
			}
		}
	}
	
	public static void main(String[] args) {
//		try {
//			write2File();
//			write2File2();
//			readFromFile();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
		readFromFile2();
	}
	


}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值