手记

【备战春招】第9天 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流,按照编码处理

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

  • 批量读取

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

  • 写入文件

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();

6)字符流的过滤器

BufferReader --> readLine 一次读一行

BufferWriter/PrintWriter --> 写一行

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

//写入文件

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

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

PrintWriter pw = new PrintWriter(fileName);

pw.println(line);

课程收获:

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


0人推荐
随时随地看视频
慕课网APP