用户输入一个数字,如果我重复相同的数字并将该数字写在我的文本文件中。我如何停止重复。 ?
我创建了一个文本文件,然后在文本文件中写入数字..如果我重复写入与在文件中写入的数字相同的数字..请更正我的代码..我只想写入一个数字.... < / p>
public class FileOp extends Thread {
volatile String s = "yes";
void create() throws InterruptedException, IOException {
String filename = "Numberfile.txt";
File file = new File(filename);
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
if (file.createNewFile()) {
System.out.println("\nFile '" + filename + "' has
been created.\n");
} else {
System.out.println("\nFile '" + filename + "'
already exists.\n");
}
}
void write() throws InterruptedException, IOException {
FileWriter fw = new FileWriter("Numberfile.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
do {
Scanner in = new Scanner(System.in);
System.out.println("Please enter a number :");
int a = in.nextInt();
bw.write("" + a + "\n");
System.out.println("Succesfully added in
Numberfile");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("Do you want continue
(yes / no) ? ");
s = in.next();
}
while (s.equalsIgnoreCase("yes"));
bw.close();
}
}
我输入数字2
并将其写入我的文本文件,然后我反复输入数字2
..将其存储在文本文件中。我不想要..只有一次将其写入文本文件,
答案 0 :(得分:1)
您不需要设置,只需列出一个整数类型的列表即可包含之前添加的数字。在写入文件/添加到列表之前,使用list.add(number)添加和list.contains(number)检查列表中是否已经存在数字。
声明一个整数类型的列表:List<Integer> numbers = new ArrayList<>();
还可以查看Java中的Collections: Class Collections
编辑:设置声明:Set<Integer> set = new HashSet<>();