字符流
字符流分为字符输出流和字符输入流。只可以对文本文档文件操作
字符输入流Reader
常用方法:
1. int read():
读取一个字符。返回的是读到的那个字符。如果读到流的末尾,返回-1.
2. int read(char[]):
将读到的字符存入指定的数组中,返回的是读到的字符个数,也就是往数组里装的元素的个数。如果读到流的末尾,返回-1.
3. close():
读取字符其实用的是window系统的功能,就希望使用完毕后,进行资源的释放。
FileReader类
在进行对文件读取时所用的类
例:
1 // 明确数据源 2 FileReader fr=new FileReader("D:\demo0723\b.txt"); 3 //读一个字符 4 int len=0; 5 while((len=fr.read())!=-1){ 6 System.out.print((char)len); 7 } 8 //读一个字符数组 9 int len =0; 10 char[] ch=new char[1024]; 11 while((len=fr.read(ch))!=-1){ 12 System.out.println(new String(ch,0,len)); 13 } 14 //释放资源 15 fr.close(); 16 }
字符输出流Writer
所用方法:
write();
FileWriter类
该类没有特有的方法。只有自己的构造函数。
该类特点在于:
1.用于处理文本文件。
2.该类中有默认的编码表,
3.该类中有临时缓冲。
例:
1 //明确目的地 2 FileWriter fw=new FileWriter("D:\demo0723\r.txt",true); 3 //写入一个字符 4 fw.write(100); 5 fw.flush(); //写一下刷新一下 6 //写入一个字符数组 7 char[] ch={'你','好','j','a','v','a'}; 8 fw.flush(); 9 //写入一个字符串 10 fw.write("hellojava",1,6); 11 fw.flush(); 12 //释放资源 13 fw.close(); //最后关闭 14 }
注意:第二行当传入的boolean类型值为true时,会在指定文件末尾处进行数据的续写。默认是false,会覆盖。
实际应用:文件复制
1 //明确数据源 2 FileReader fr=new FileReader("D:\demo0723\r.txt"); 3 //明确目的地 4 FileWriter fw=new FileWriter("D:\demo0723\b\r.txt"); 5 //开始复制(一个字符复制) 6 int len=0; 7 while((len=fr.read())!=-1){ 8 fw.write(len); 9 } 10 //释放资源 11 fr.close(); 12 fw.close(); 13 }