gpt4 book ai didi

java - 在文本文件中查找字符串的方法,如果找不到字符串,则将字符串添加到文本文件,否则拒绝输入

转载 作者:行者123 更新时间:2023-12-02 07:29:56 24 4
gpt4 key购买 nike

public static void main(String[] args) throws IOException{
if (args.length == 1)
{
BufferedReader bf = new BufferedReader (new FileReader("fruit.txt"));
int linecount = 0;
String line;
//run thur the txt file to check if input exist
while (( line = bf.readLine()) != null)
{
linecount++;
int indexfound = line.indexOf(args[0]);
if (indexfound > -1) {
System.out.println("fruit exist on line " + linecount);
System.out.println("add another fruit");
System.exit(0);
} else {
BufferedWriter bw = new BufferedWriter(new FileWriter("fruit.txt", true));
String fruit = "";
fruit = args[0];
bw.write("\r\n" + fruit);
System.out.println(fruit+ "added");
}
}
f.close();
bw.close();
}

我想让程序在文本文件fruit.txt中进行搜索检查其中是否已经存在水果。

如果存在水果则提示用户输入另一个1

其他添加到文本文件的下一行

这就是我到目前为止所得到的。但我不确定为什么这不是我想要的。

在我的文本文件中,它以 3 个水果开头

apple
orange
pear

添加浆果后

apple
orange
pear
berry
berry

加入甜瓜后

apple
orange
pear
berry
berry
melon
melon
melon
melon

最佳答案

你只是检查第一行的水果,如果没有找到,你就继续添加。

你需要先完整地读取你的文件,检查每一行,它是否包含你的水果,然后如果不包含,就把那个水果倒进去。如果包含,则拒绝它。

所以,在你的时候,你需要将其他部分移到外面。当找到水果时,您可以将一个 boolean 变量设置为true,而不是执行System.exit(),然后根据 boolean 变量的值,您可以决定是否添加是否有水果。

boolean found = false;
while (( line = bf.readLine()) != null) {

linecount++;
int indexfound = line.indexOf(args[0]);
if (indexfound > -1) {
System.out.println("fruit exist on line " + linecount);
System.out.println("add another fruit");
found = true;
break;
}
}

if (!found) {

BufferedWriter bw = new BufferedWriter(new FileWriter("fruit.txt", true));
String fruit = "";
fruit = args[0];

bw.write("\r\n" + fruit);
System.out.println(fruit+ "added");

bw.close(); // You need to close it here only.
}

bf.close();

关于java - 在文本文件中查找字符串的方法,如果找不到字符串,则将字符串添加到文本文件,否则拒绝输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13044259/

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