A文件:
A
B
C
D
B文件:
1
2
3
4
利用java io操作A B 文件,得出
C文件:
A 1234
B 1234
C 1234
D 1234
或者
A 1
A 2
A 3
A 4
B 1
B 1
B 2
B 3
B 4
…………
大神求解
A文件:
A
B
C
D
B文件:
1
2
3
4
利用java io操作A B 文件,得出
C文件:
A 1234
B 1234
C 1234
D 1234
或者
A 1
A 2
A 3
A 4
B 1
B 1
B 2
B 3
B 4
…………
大神求解
第一种合并方式比较简单,A文件的逐行+B文件的全部内容,所以可以这样实现:先将B文件读入内存中存入中间变量中,然后逐行遍历A文件写入C文件。
参考实现如下,合并时注意添加必要的空格:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileMerge {
/**
* 将源文件和目标文件的内容逐行合并后输出到第三个文件中
* 合并方式是source 中的每一行+target中所有行
* 实现方式,先将target全部读入内存,然后逐行遍历source拼接目标内容后写入dist,
* @param source
* @param targte
* @param target
* @throws IOException
*/
public static void merge(String source,String target,String dist) throws IOException{
//先读取target的内容存入临时变量
File file = new File(target);
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuffer buffer = new StringBuffer();
buffer.append(" ");
String value = reader.readLine();
while(value!=null){
buffer.append(value).append(" ");
value = reader.readLine();
}
reader.close();
String targetContent = buffer.toString();
//逐行读取source,组合目标文件source一行+target整个文件内容
BufferedWriter bw = new BufferedWriter(new FileWriter(dist));
file = new File(source);
reader = new BufferedReader(new FileReader(file));
value = reader.readLine();
while(value!=null){
bw.write(value+targetContent);
bw.newLine();
value = reader.readLine();
}
bw.flush();
bw.close();
}
public static void main(String[] args) {
String a = "src/A.txt";
String b = "src/B.txt";
String c = "src/C.txt";
try {
merge(a,b,c);
} catch (IOException e) {
e.printStackTrace();
}
}
}