实现的方法如下面所示,不知道有什么问题,在最后一个文件里是有乱码的,而且全部是乱码,输入文件全是英文文章,不是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();
}
}
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();
}
}
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();
}
}
}
另外考虑下原始文件的编码问题,如果文件编码不同,读入后合并输出肯定是乱码吧,因为不符合你输出文件的格式。