第二十一章 IO流1


21.1 字节流与字符流
字节流:按基本元素字节读写的流
  抽象基类:InputStream,OutputStream
字符流:与编码表结合,按字符读写的流
  抽象基类:Reader,Writer

21.2 FileWriter
继承关系:Writer-OutputStream-FileWriter
FileWriter fw = new FileWriter("x:/xx/xx");
文件不存在时自动创建,文件存在时覆盖原文件

21.3 换行和续写
换行/r(windows) /n(Unix)
建议调用System.getProperty("LINE_SEPRATER");
write方法覆盖原数据,续写时设置追加参数为true。
FileWriter fw = new FileWriter("x:/xx/xx", true);

21.4 IO异常处理
为了方便异常处理,在catch和finally中调用,在try语句块外声明


FileWriter fw = null;
try{
//code
}catch(IOException e){
//code
}finally{
if(fw != null)
fw.close();
}

21.5 FileReader读取方法
1.read();读取一个字符,结束时返回-1
2.
char[] buf = new char[3];
int num = fr.read(buf);
读取字符数组

21.6 缓冲区读写
FileWriter fw = new FileWriter("xxx.txt");
BufferedWriter bfw = new BufferedWriter(fw);
bufw.write("abc");
bufw.close();
//缓冲区关闭时,其对应的流也关闭

26.7 装饰设计模式
BufferedReader & BufferedWriter其实是一种装饰模式。
在Reader与Writer的基础上对其所具备的功能进行强化
BufferedReader br = new BufferedReader (Reader);
装饰与继承的区别:
只是为了增强或提高效率进行继承,会使集成体系越发臃肿、复杂。
装饰使用更为灵活。
同时装饰与被装饰类之间不具备抽象关系。

26.8 LineNumberReader
getLineNumber();
setLineNumber();

26.9 操作文件
FileInputStream & FileOutputStream操作字节流,不受文件格式限制。  
其可以使用缓冲类 BufferedInputStream & BufferedOutputStream





















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值