嗨,伙计们,我遇到了我的一个问题任务。我尝试了不同的方法,但我仍然无法做到。
答案 0 :(得分:1)
我认为这样做会有所帮助。首先处理旧文件,然后覆盖新文件中的现有文件。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
...
public class ContactsProcessor {
public static void main(String[] args) {
List<String> contactsNew = Files.readAllLines(Paths.get("contactsNew.tsv"));
List<String> contactsOld = Files.readAllLines(Paths.get("contactsOld.tsv"));
List<String> contactsGmail = new ArrayList<String>();
Map<String, String> gmailMap = new HashMap<String, String>();
// process old contacts first -- add to a Map
for (String info : contactsOld) {
String[] parts = info.split("\\t");
if (info.endsWith("@gmail.com")) {
gmailMap.put(parts[0], info);
}
}
// process new contacts second -- add to a Map, overwriting old contacts with same name
for (String info : contactsNew) {
String[] parts = info.split("\\t");
if (info.endsWith("@gmail.com")) {
gmailMap.put(parts[0], info);
}
}
contactsGmail.addAll(gmailMap.values());
Collections.sort(contactsGmail);
Files.write(Paths.get("contactsGmail.tsv"), contactsGmail);
}
}