J2SE知识点归纳笔记(七)—Java IO Part 4:基本字符流
——转载请注明出处:coder-pig
本节引言:
上一节中,我们对于Java IO流中的一些基本字节流进行了学习,他们都是InputStream与
OutputStream的子类;本节学习的字符流则是Reader与Writer的子类,好了,话不多说,
开始本节内容!
本节正文:
1.Reader类与Writer类的相关方法:
PS:~小猪比较懒,所以就不一个个敲方法与解析了,直接截API的图吧,大家可自行翻阅API文档:
①Reader类的相关方法:
②Writer类的相关方法:
一些要搞清楚的东西:
1)二进制文件与文本文件的区别:
答:如果一个文件专用于存储文本字符,而又没有包含文本之外的字符,
就可称之为文本文件。除此之外的文件就是二进制文件!
2)InputStream,OutputStream和Reader,Writer的区别:
答:前者是处理字节流,后者是处理字符流;
前者主要用于操作二进制数据的内容,后者则用于操作文本数据的内容;
前者直接操作byte数组,后者在操作时还会进行Decode和Encode~
2.FileReader与FileWriter类的使用:
构造方法:
代码示例:
这里演示的代码是:读取文件里的内容,以及完成简单的文件复制
接下来就来写代码了,大家自己写的时候记得进行异常捕获哦~
①往文件写入数据,读取数据显示:FileWriter fileWriter = new FileWriter("D:/one.txt");fileWriter.write("我是萌萌的Coder-pig~");fileWriter.close();//读取文件中的内容:FileReader fileReader = new FileReader("D:/one.txt");//用户缓冲的字符数组char[] cbuf = new char[1024];int len = fileReader.read(cbuf);System.out.println(new String(cbuf,0,len));fileReader.close();fileWriter.close();运行截图:
②文件复制的实现:
这里有两种,随你选
方法1:
FileReader fileReader = new FileReader("D:/one.txt");FileWriter fileWriter = new FileWriter("E:/one.txt");//复制文件的最简单写法char [] cbuf=new char[1024]; //字符数组int len=fileReader.read(cbuf);fileWriter.write(cbuf);fileReader.close();fileWriter.close();
方法2:
FileReader fileReader = new FileReader("D:/one.txt");FileWriter fileWriter = new FileWriter("E:/one.txt");char []buf = new char[1024];int len = 0;//读一个数组大小,写一个数组大小方法。while((len = fileReader.read(buf)) != -1){fileWriter.write(buf, 0, len);}fileReader.close();fileWriter.close();③要注意的地方:
使用FileWriter的时候要注意:
FileReader与FileWriter读写文件采取的是平台默认编码(视操作系统而定),比如中文的win为gbk,
英文的win为iso,当要写入的文本文件编码和平台默认编码不一致时,就会出现中文乱码的情况。
这时可用OutputStreamWriter来读取。这个下面会讲,莫急~
3.CharArrayReader与CharArrayWriter类:
前面我们学过了CharArrayInputStream与CharArrayOutputStream类,其实是类似的,只不过这个
是字符,前面两个是字节的而已,同样他有个toCharArray( )的方法!其实也没什么好讲的,用的并不多,
而且还要借助其他流..
带上心灵去旅行,以平和的心态看待一切,