import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) throws Exception {
List wordA = getWords("F:/A.txt");
List wordB = getWords("F:/B.txt");
// A单词中B里面有的集合
List wordC = new ArrayList();
// A单词中B里面没有的集合
List wordD = new ArrayList();
for (String words : wordA) {
if (wordB.contains(words)) {
wordC.add(words);
} else {
wordD.add(words);
}
}
// 如果wordD为空,说明A的单词B里面都有
if (wordD.isEmpty()) {
return;
}
File a = new File("F:/A.txt");
File c = new File("F:/C.txt");
c.createNewFile();
// 向A文件中写入B中存在的单词
BufferedWriter bw = new BufferedWriter(new FileWriter(a));
for (String w : wordC) {
bw.write(w + "\r\n");
}
bw.flush();
bw.close();
// 向C文件中写入B中不存在的单词
bw = new BufferedWriter(new FileWriter(c));
for (String w : wordD) {
bw.write(w + "\r\n");
}
bw.flush();
bw.close();
}
/**
* 从文件中读取单词
* @param filePath 文件完整路径
* @return
* @throws IOException
*/
static List getWords(String filePath) throws IOException {
List words = new ArrayList();
File file = new File(filePath);
if (!file.exists() || file.isDirectory()) {
System.out.println("文件路径无效");
return words;
}
BufferedReader br = new BufferedReader(new FileReader(file));
String tmp = null;
while ((tmp = br.readLine()) != null) {
words.add(tmp);
}
br.close();
return words;
}
}