java中的字符流[49]
一、字符流概念
字符流:每次操作单位为一个字符,文件字符流操作会自带缓存,默认大小为1024字节,在缓存满后,或手动刷新缓存或关闭流时,会把数据写入文件中.字符流内部实现还是字节流.
字符输出流:Writer:写入字符流抽象类,对文件操作使用FileWriter实例化
字符输入流:Reader:读取字符流抽象类,使用FileReader类实例化
二、代码演示
//字符输出流
private static void Sout(){
//指定文件
File file=new File("D:/files/test1.txt");
try {
//创建字符输出流,true表示追加,默认覆盖
Writer writer=new FileWriter(file,true);
//可直接将字符串进行输出,System.getProperty("line.separator"):表示本机换行标签
writer.write(System.getProperty("line.separator")+"你好字符输出流"+System.getProperty("line.separator"));
//关闭字符输出流
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//字符输入流
private static void Sin(){
//指定文件
File file=new File("D:/files/test1.txt");
try {
//创建字符输入流
Reader reader=new FileReader(file);
//字符输入流要创建字符数组
char[] chars=new char[1024];
//字符长度
int len=-1;
//转换成String
StringBuilder sb=new StringBuilder();
//循环读取,并添加进StringB
while ((len=reader.read(chars))!=-1){
sb.append(chars,0,len);
}
//关闭字符输入流
reader.close();
System.out.println(sb);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
三.字符流和字节流的区别
在所有操作里面,字节永远是最基础的,如果确认流里面只有可打印字符,包括中英文,可以考虑使用字符流,由于编码不同,字符流是根据指定的编码.将一个或多个字节转换为java里面的Unicode字符.
总结:一般操作非文本文件时,使用字节流,如果确认流是可打印字符,或者文本文件,那么使用字符流会简便,如不确认,则使用字节流总是不会出错的.
四.小结
本章概述了java中的字符流,字符流可以说是,处理字符串文本时的首选,如果在确定要处理的文件内都是字符类型的时候,优先选择字符流;
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!
本文含有隐藏内容,请 开通VIP 后查看