继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕名9214806
关注TA
已关注
手记 21
粉丝 0
获赞 0

课程名称: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流,按照编码处理

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

http://img3.mukewang.com/63ecfeff0001132314480818.jpg

  • 批量读取

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

http://img.mukewang.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();

http://img2.mukewang.com/63ecff4900012bd114520816.jpg

6)字符流的过滤器

BufferReader --> readLine 一次读一行

BufferWriter/PrintWriter --> 写一行

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

http://img3.mukewang.com/63ecff560001416214480810.jpg

//写入文件

http://img.mukewang.com/63ecff610001c30714480814.jpg

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

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

PrintWriter pw = new PrintWriter(fileName);

pw.println(line);

课程收获:

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP