字符输入流Reader
同使用其子类FileReader
构造方法也与字节流相同
单个字符读
1 //明确数据源 2 FileReader fr = new FileReader("D:\\io0429\\demo01.txt"); 3 //单个字符读 4 int len = 0; 5 while((len = fr.read()) != -1){ 6 System.out.println((char)len); 7 } 8 //释放资源 9 fr.close();
单个字符数组读
1 //明确数据源 2 FileReader fr = new FileReader("D:\\io0429\\demo01.txt"); 3 //按字符数组读 4 char[] ch = new char[1024]; 5 int len = 0; 6 while((len = fr.read(ch)) != -1){ 7 System.out.println(new String(ch,0,len)); 8 } 9 fr.close();
字符输出流Writer
使用其子类FileWriter
构造方法也相同
单个字符/单个字符数组输出
1 //明确目的地 2 FileWriter fw = new FileWriter("D:\\io0429\\demo02.txt"); 3 //写入一个字符 4 fw.write(100); 5 fw.flush(); 6 //写入一个字符数组 7 char[] ch = {'你','a','0','好'}; 8 fw.write(ch); 9 fw.flush(); 10 fw.write(ch,1,2); 11 fw.flush(); 12 fw.write("海绵宝宝"); 13 fw.flush(); 14 fw.write("派大星",0,1); 15 //释放资源 16 fw.close();
字符复制文件练习
1 //单个字符复制 2 //明确数据源 3 FileReader fr = new FileReader("D:\\io0429\\demo02.txt"); 4 //明确目的地 5 FileWriter fw = new FileWriter("D:\\io0429\\hello\\demo03.txt"); 6 int len = 0; 7 while((len = fr.read()) != -1){ 8 fw.write(len); 9 fw.flush(); 10 } 11 //释放资源 12 fw.close(); 13 fr.close();
1 //单个字符数组复制 2 //明确数据源 3 FileReader fr = new FileReader("D:\\io0429\\demo02.txt"); 4 //明确目的地 5 FileWriter fw = new FileWriter("D:\\io0429\\copy.txt"); 6 char[] ch = new char[1024]; 7 int len = 0; 8 while((len = fr.read(ch)) != -1){ 9 fw.write(ch,0,len); 10 fw.flush(); 11 } 12 //释放资源 13 fw.close(); 14 fr.close();
总结下来,字符与字节的使用方法基本相同,那他的区别在什么地方?
区别就在于,当你传输图片或视频的类似文件时,因其内部是有字节编码组成,所以只有使用字节操作才能使用。而字符操作文本文档类似文件,效率会更高。