字符流:解决字节流读取中文字符乱码,显示不完整问题
字符输入流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){ /* String类的构造方法 String (char[] value) 将字符数组转换为字符串 String(char[] ,int offset,int count) 将数组的一部分转换为字符串(有效数组的转化) */ System.out.println(new String(chars,0,len)); } fir.close(); }
字符输出流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(): 先刷新缓存区,然后通知系统释放资源,流对象不能继续使用了。
写入的方法
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"); //写入字符数组 char[] chars={‘a‘,‘b‘,‘c‘,‘d‘}; fw.write(chars);//写入到缓存区中,并将字符变为字节的过程 //字符数组的一部分 fw.write(chars,1,3); //写入字符串的一部分 fw.write("今天天气很好!",1,4);//天天气很 fw.flush();//使用frush()方法,将缓存的数据刷新到文件中 fw.close();//关闭资源, } }
续写与换行:
原文:https://www.cnblogs.com/zhsv/p/13900498.html