为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第9天 JAVA输入输出流

标签:
Java

课程名称:JAVA输入输出流

课程章节:第5章 字符流

课程讲师: Cedar

课程内容:


1)编码问题

2)认识文本和文本文件

  • JAVA的文本(char)是16位的无符号整数,是字符的unicode编码(双字节编码)

  • 文件是byte byte byte ……的数据序列

  • 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结果

3)字符流(Reader Writer)-->操作的是文本文件

  • 字符的处理,一次处理一个字符

  • 字符的底层依然是基本的字节序列

4)字符流的基本实现

InputStreamReader完成byte流解析为char流,按照编码解析

OutputStreamWriter提供char流到byte流,按照编码处理

//避免乱码,要使用文件本身的编码读取

https://img1.sycdn.imooc.com//63ecfeff0001132314480818.jpg

  • 批量读取

//放入buffer字符数组,从第0个位置开始放置,最多放buffer.length,返回的是读到的字符的个数

https://img1.sycdn.imooc.com//63ecff1700016a1114500818.jpg

  • 写入文件

FileOutputStream  out = new FileOutputStream(fileName);

OutputStreamWriter osw = new OutputStreamWriter(out,"utf-8");

osw.write(buffer,0,c);

osw.flush();

5)文件读写流

FileReader fr = new FileReader(fileName);

FileWriter fw = new FileWriter(fileName,true);//在文件中追加内容

char buffer = new char[2056];

int c;

while((c = fr.read(buffer,0,buffer.length))!=-1){

fw.write(c);

fw.flush();

}

fr.close();

fw.close();

https://img1.sycdn.imooc.com//63ecff4900012bd114520816.jpg

6)字符流的过滤器

BufferReader --> readLine 一次读一行

BufferWriter/PrintWriter --> 写一行

//对文件进行读写操作,一次读一行,不能识别换行符

https://img1.sycdn.imooc.com//63ecff560001416214480810.jpg

//写入文件

https://img1.sycdn.imooc.com//63ecff610001c30714480814.jpg

bw.write(line); //需单独写入换行操作

bw.newLine(); //换行操作

PrintWriter pw = new PrintWriter(fileName);

pw.println(line);

课程收获:

几天的课程学习到了字节流、文件流的6种主要的对象,涉及方法较多,还需要后续继续实践体验。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消