将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件 中
程序员文章站
2022-07-09 22:34:44
...
package again;
import java.io.*;
/*
1、编写一个程序,将 a.txt 文件中的单词与
b.txt 文件中的单词交替合并到 c.txt 文件
中,a.txt 文件中的单词用回车符分隔,b.txt
文件中用回车或空格进行分隔
*/
public class Demo01 {
public static void main(String[] args) throws Exception {
File aFile = new File("d:/a.txt");
File bFile = new File("d:/b.txt");
FileReader frA = new FileReader(aFile);
FileReader frB = new FileReader(bFile);
BufferedReader brA = new BufferedReader(frA);
BufferedReader brB = new BufferedReader(frB);
String strA = "";
String resA = "";
String strB = "";
String resB = "";
//分别读取ab文件,然后将内容分别存储到所对应的的字符串中
while((strA = brA.readLine()) != null){
resA += strA;
}
while((strB = brB.readLine()) != null){
resB += strB;
}
BufferedWriter bw = new BufferedWriter(new FileWriter("d:/c.txt"));
int i = 0;
int lenA = resA.length();
int lenB = resB.length();
//判断长度,是为了在如果某一个文件的字符串长度多的情况
int max = lenA>lenB ? lenA : lenB;
int min = lenA<lenB ? lenA : lenB;
//定义resStr为了去每次取到的结果然后存储到c中
String resStr = "";
//循环i值使其小于长的length,这样会把所有内容遍历,存储
while (i < max){
//当i<min时,这时候是取两个文件字符串的共同长度的值
if (i<min) {
char a = resA.charAt(i);
char b = resB.charAt(i);
resStr = a + "\t" + b + "*";
bw.write(resStr);
}else{//else表示现在某一个文件被取完了,但另一个文件仍然有值。
//判断是哪个文件
if (lenA >lenB){
char a = resA.charAt(i);
resStr = a + "\t";
bw.write(resStr);
}else{
char b = resB.charAt(i);
resStr = b + "*";
bw.write(resStr);
}
}
//每次的i++;
i++;
}
//关闭流
bw.close();
brA.close();
brB.close();
frA.close();
frB.close();
}
}