gpt4 book ai didi

java - 使用 Java 检查文本文件中是否已存在输入

转载 作者:行者123 更新时间:2023-12-01 22:51:33 25 4
gpt4 key购买 nike

我想创建一个小项目,可以在其中插入名称并将其与文本文件中的输入数据一起保存。此外,它还应该检查该名称是否已在文档中,如果是,则应该出现警报并且不应添加该名称。

下面的代码是我如何将名称添加到文本文件中的。

else if (i == 1) {  
Scanner input = new Scanner(System.in);

System.out.println("Surname: ");
surname = input.nextLine();

System.out.println("First name: ");
firstname = input.nextLine();

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(sdf.format(date));


File file = new File("C://Users/Prakt1/Desktop/projektverwaltung.txt");
String content = ("Surname " + (surname) + LINE_SEPARATOR + "First name: " + (firstname) + LINE_SEPARATOR + "Added: " +
(sdf.format(date)) + LINE_SEPARATOR);

try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("C://Users/Prakt1/Desktop/projektverwaltung.txt", true)))) {
out.println(content);
}catch (IOException e) {
e.printStackTrace();
}

如何在没有 jQuery/JavaScript 的情况下在 Java 中执行此操作?

谢谢你的帮助,克里斯

最佳答案

这是一个简单的解决方案:首先构建名称字符串,然后读取文件并检查它是否在其中。如果是警报,否则执行插入

// Build the string
String content = ("Surname " + (surname) + LINE_SEPARATOR + "First name: " + (firstname);

// Read all contents into a String
byte[] bytes = Files.readAllBytes(Paths.get("C://Users/Prakt1/Desktop/projektverwaltung.txt"));
String s = new String(bytes);

// Check if the name is contained
if(s.indexOf(content) != -1){
System.out.println("Name already present!");
} else {
... // Do your usual insertion
}

请注意,您必须在 new String 构造函数中指定编码,除非您的文件使用平台的默认编码。例如,对于 UTF8,它可能如下所示:

String s = new String(bytes,StandardCharsets.UTF_8);

另请注意,此方法会将文件彻底读入内存。因此,如果您有一个非常大的文件(> 50 MB),在读取时会产生 OutOfMemory 错误,您应该使用 BufferedReader 并逐行读取文件.

关于java - 使用 Java 检查文本文件中是否已存在输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24671665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com