我有一个程序可以读取两个文件(“incompleta.txt”和“completa.txt”)并比较两个文件中是否有相同的名称。以下是它的工作原理:
问题是我的“lista.txt”如下所示:Image
第二行令人困惑和扭曲。
我的Java代码:
private static final List<Character> lista = new ArrayList<>();
public static void main(String[] args) throws FileNotFoundException, IOException {
try (Reader reader = new InputStreamReader(new FileInputStream("completa.txt"), "UTF-8")) {
int data = reader.read();
while (data != -1) {
char theChar = (char) data;
data = reader.read();
lista.add(theChar);
}
reader.close();
}
try (Reader reader = new InputStreamReader(new FileInputStream("incompleta.txt"), "UTF-8")) {
int data = reader.read();
while (data != -1) {
char theChar = (char) data;
data = reader.read();
if (lista.contains(theChar)) {
lista.remove(theChar);
}
}
reader.close();
}
try (Writer writer = new OutputStreamWriter(new FileOutputStream("lista.txt"), "UTF-8")) {
for (int i = 0; i < lista.size(); i++) {
writer.append(lista.get(i));
}
writer.close();
}
System.out.println("\n[AVISO] LISTA GERADA COM SUCESSO!\n");
}
答案 0 :(得分:1)
您拥有的是从第一个文件构建的字符列表。不是字符串列表。
然后根据第二个文件删除一些单独的字符。这留下了一些看起来很滑稽的话;你收到了丢失的信件。然后在最后,你打印所有这些。你的输出正是我所期望的。
答案 1 :(得分:0)
autobox功能不是对称的。添加'd'包含在Character对象中。 删除后,没有autobox。删除('d')更改为删除(100)。 将对象放入remove(新角色('d'))