本帖最后由 哈皮哈皮doge 于 2015-8-26 20:12 编辑
- import java.io.File;
- import java.io.FileReader;
- import java.io.FileWriter;
- public class TestReader {
- public static void main(String[] args){
- File src = new File("1.txt");
- File des = new File("2.txt");
- FileReader reader = null;
- FileWriter writer = null;
- try{
- int ch =0;
- char[] chars = new char[10];//表示10个字符的数组
- reader = new FileReader(src);
- writer = new FileWriter(des);
- //ch的值表示输入流每次读到的字符的个数,不是字节数,也不是总个数,这个值可能不是每次都相等
- //例如:文本文件里头有11个字符(aaaaaaaaaab)因为这里chars的大小是10,所以要读2次,第一次读10个字符,第二次读1个字符,
- //因此,第一次读时ch=10第2次读时ch=1;
- //此外,第一次读时chars为aaaaaaaaaa,第二次读时chars为baaaaaaaaa,第二次因为只读了一个所以只是覆盖了chars的第一个字符,后面的不变
- while((ch=reader.read(chars))!=-1){
- writer.write(chars,0,ch);//将每次读到的字符输出到目标文件,如果用write(chars)方法则会将chars中所有的字符都输出,这里用0,ch表示只需输出每次读到的字符
- System.out.println(ch);//查看每次读了多少字符
- System.out.print(new String(chars));//将chars输出到控制台
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- try{
- if(reader!=null){
- reader.close();
- }
- if(writer!=null){
- writer.close();
- }
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- }
复制代码
|
|