字符流:解决字节流读取中文字符乱码,显示不完整问题
字符输入流Reader:
复制代码
public static void main(String[] args) throws IOException {
FileReader fir=new FileReader("E:\JavaBase\FirstPro\src\a.txt");
int len=0;
// //一次读取一个字符
// while((len=fir.read())!=-1){
// System.out.print(len);
// }
//一次读取多个字符,使用char[]数组
char[] chars=new char[1024];
while ((len=fir.read(chars))!=-1){
/*
//代码效果参考:http://www.zidongmutanji.com/zsjx/122445.html
String类的构造方法
String (char[] value) 将字符数组转换为字符串
String(char[] ,int offset,int count) 将数组的一部分转换为字符串(有效数组的转化)
*/
System.out.println(new String(chars,0,len));
}
fir.close();
}
//代码效果参考:http://www.zidongmutanji.com/bxxx/204686.html
字符输出流Writer:
package com.zhs.io;
import java.io.FileWriter;
import java.io.IOException;
public class DemoWriter1 {
public static void main(String[] args) throws IOException {
FileWriter fw=new FileWriter("E:\JavaBase\FirstPro\src\a.txt");
fw.write("L");//写入到缓存区中,并将字符变为字节的过程
fw.flush();//使用frush()方法,将缓存的数据刷新到文件中
fw.close();//关闭资源,
}
FileWriter中的frush()方法和close()都可以将缓存的数据刷新到文件中,有何区别?
-frush(): 刷新缓存区,流对象可以继续使用,写入字符数据
-close(): 先刷新缓存区,然后通知系统释放资源,流对象不能继续使用了。
写入的方法
//写入字符数组
char[] chars={'a','b','c','d'};
fw.write(chars);//写入到缓存区中,并将字符变为字节的过程
//字符数组的一部分
fw.write(chars,1,3);
//写入字符串的一部分
fw.write("今天天气很好!",1,4);//天天气很