[英]write string in file if not exist java
我尝试仅在String不存在时才将String写入文件,这是我的代码
File rule_file = new File("test_rules.rules");
Scanner scanner = new Scanner(rule_file);
PrintWriter writer = new PrintWriter(new FileWriter(rule_file,true));
while (scanner.hasNextLine())
{
String lineFromFile = scanner.nextLine();
if(!rule_write.equals(lineFromFile))
{
if(unique.get(nilai_besar).getCount()>10)
{
writer.write(rule_write);
writer.close();
break;
}
}
}
但是,即使该字符串已存在于文件中,程序仍将String写入文件。 请帮忙,谢谢...
仅检查文件的一行后,您可能会写多余的行。
我建议您读完文件,不要尝试写入文件,直到您知道该行确实出现在文件中的任何位置。
即,我将使用PrintWriter.println(),并将所有要写入的代码移动到搜索循环之后。
对于不相等的每一行,您(可能)尝试写入文件。
您想要的是在所有行都不相等的情况下写入文件:
boolean found = false;
while (scanner.hasNextLine())
{
String lineFromFile = scanner.nextLine();
if (rule_write.equals(lineFromFile))
{
found = true;
break;
}
}
if (!found) {
// append rule_write to the file
...
}
使用indexOf()
或contains()
而不是equals()和equalsIgnoreCase(),
我确定您阅读的行可能包含
如果使用indexOf()
或contains()
,它将检查行是否包含字符串( rule_write
)
确保值进入while()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.