求代码,A/B两个txt文档,里面都是一个一行单词,如果A的单词B里有,保留,如果无则删除,java处理
答案:1 悬赏:80
解决时间 2021-01-19 19:28
- 提问者网友:那叫心脏的地方装的都是你
- 2021-01-19 01:33
求代码,A/B两个txt文档,里面都是一个一行单词,如果A的单词B里有,保留,如果无则删除,java处理
最佳答案
- 二级知识专家网友:独钓一江月
- 2021-01-19 01:47
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 + "
");
}
bw.flush();
bw.close();
// 向C文件中写入B中不存在的单词
bw = new BufferedWriter(new FileWriter(c));
for (String w : wordD) {
bw.write(w + "
");
}
bw.flush();
bw.close();
}
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;
}
}
追问:为什么当A文档500kb文档4000k的就无法处理了 啊 不显示结果 还有 那个c文档 中间有很多换行符就是空着很多个换行符 能不能把c文档中也设置成一个单词一行啊
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
List
// A单词中B里面有的集合
List
// A单词中B里面没有的集合
List
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 + "
");
}
bw.flush();
bw.close();
// 向C文件中写入B中不存在的单词
bw = new BufferedWriter(new FileWriter(c));
for (String w : wordD) {
bw.write(w + "
");
}
bw.flush();
bw.close();
}
static List
List
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;
}
}
追问:为什么当A文档500kb文档4000k的就无法处理了 啊 不显示结果 还有 那个c文档 中间有很多换行符就是空着很多个换行符 能不能把c文档中也设置成一个单词一行啊
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |