字符输入流/输出流,是指以字符为单位进行输入或输出的方式。其与字节输入流/字节输出流的用法如出一辙,只是输入/输出单位由字节改为字符。
一、字符输入流
创建步骤:
① 创建输入源文件的 File 对象:File file=new File("路径");
② 创建 File 对象的字符输入流对象:FileReader fr=new FileReader(file);
字符输入流方法的含义:
① .read() 返回一个整数,表示阅读到的位置,也就是这个位置上的字节的ASCII或其他编码值。每执行一次 .read(),指针跳动一个字符。跳动至末尾,返回-1。
② .read(char[] c) 返回一个整数,表示这次操作一共阅读了多少个字符,同时将阅读到的字符存入字符数组 c 中。阅读完毕,返回-1。
public static void main(String[] args) throws IOException{//创建File对象File file=new File("D:\\android\\test\\a.txt");//a.txt的内容是单词“Helloworld”,但我们假设它很长//创建FileReader对象FileReader fr=new FileReader(file);char[] c=new char[1024]; //创建一个字符数组,由于长度未知,可暂时设定为1024,如不够,再尝试其他长度。int length=0;while((length=fr.read(c))!=-1){String data=new String(c,0,length);System.out.print(data);}fr.close(); //关闭文件资源}
二、字符输出流
总体步骤:
① 创建输出目标文件的 File 对象:File file=new File("路径");
② 创建 File 对象的字符输出流对象:FileWriter fw=new FileWriter(file) 或者FileWriter fw=new FileWriter(file,true)。不加 true 表示覆盖写入;加上 true 表示追加写入。
③ 将需要写入的字符串转化为字符数组:char[] c=字符串.toCharArray();
④ 使用字符输出流 fw 的 write 方法,执行写入。write 方法的参数有两种,一种是字符数组;另一种是字符串。
public static void main(String[] args) throws IOException
{ File file=new File("D:\\android\\test\\a.txt");FileWriter fw=new FileWriter(file,true);String s="goodbye,Tom";char[] c=s.toCharArray();fw.write(c);fw.flush(); //清空缓存区fw.close(); //关闭文件资源
}