实现的方法如下面所示,不知道有什么问题,在最后一个文件里是有乱码的,而且全部是乱码,输入文件全是英文文章,不是txt文件,这些文件用用vim,notepad打开都正常,就是最后结果中,第二个bufferedReader 输入的内容是乱码
         File f1 = new File(args[1]);
     File f2 = new File(args[3]);
 File f0 = new File(args[4]);
 double length = 0;
 
 FileWriter fos = new FileWriter(f0);
 BufferedWriter bw = new BufferedWriter(fos);
 if(f1.isDirectory()){
                 //判断路径是否是路径
 
 File [] fileNames = f1.listFiles();
 for(int i=0;i<fileNames.length;i++){
                 //打开目录下的所有文件,用bufferedReader对象写入到结果文件中去
 FileReader fr = new FileReader(fileNames[i]);
 length = length+fileNames[i].length();
 BufferedReader br = new BufferedReader(fr);
 String temp = null;
 temp = br.readLine();                              //按行写入
 while(temp!=null){
 bw.append(temp);
 temp=br.readLine();

 }
 br.close();
 fr.close();
 }
 }  //第二个目录,实现方法与上面相同
 if(f2.isDirectory()){
 
 File [] fileNames = f2.listFiles();
 for(int i=0;i<fileNames.length;i++){
 length = length+fileNames[i].length();
 FileReader fr = new FileReader(fileNames[i]);
 BufferedReader br = new BufferedReader(fr);
 String temp = null;
 temp = br.readLine();
 while(temp!=null){
 bw.append(temp);
 bw.append('\n');
 temp=br.readLine();
 }
 br.close();
 fr.close();
 }
 
 }

解决方案 »

  1.   


    package test.InherityTest;import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    public class CombineFile {
    public static void main(String[] args){
    File f1 = new File("a");
    File f2 = new File("b");
    File fo = new File("o");

    try {
    FileReader fr = new FileReader(f1);
    FileWriter fw = new FileWriter(fo);
    BufferedReader br = new BufferedReader(fr);
    BufferedWriter bw = new BufferedWriter(fw);
    String line = "";
    while((line = br.readLine()) != null){
    System.out.println(line);
    bw.write(line);
    bw.newLine();
    }
    br.close();
    fr.close();
    fr = new FileReader(f2);
    br = new BufferedReader(fr);
    while((line = br.readLine()) != null){
    System.out.println(line);
    bw.write(line);
    bw.newLine();
    }
    bw.flush();
    bw.close();
    br.close();
    fr.close();
    fw.close();

    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    }
    另外考虑下原始文件的编码问题,如果文件编码不同,读入后合并输出肯定是乱码吧,因为不符合你输出文件的格式。