如果不存在java,则在文件中写入字符串
我尝试只在字符串不存在时才将字符串写入文件,这是我的代码如果不存在java,则在文件中写入字符串,java,file,file-io,Java,File,File Io,我尝试只在字符串不存在时才将字符串写入文件,这是我的代码 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()) {
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;
}
}
}
但是,即使字符串已经存在于文件中,程序也会将字符串写入文件。
请帮忙,谢谢 在只检查了文件的一行之后,您可能正在写入额外的一行 我建议您将文件读到最后,不要试图写入,直到您知道该行确实出现在文件中的任何位置
i、 e.我将使用PrintWriter.println()并在搜索循环后移动所有要写入的代码。您可以在只检查文件的一行后写入额外的行 我建议您将文件读到最后,不要试图写入,直到您知道该行确实出现在文件中的任何位置 i、 e.我将使用PrintWriter.println()并将所有要写入的代码移动到搜索循环之后。使用
indexOf()
或contains()
而不是equals()和equalsIgnoreCase()
我相信你读到的那一行可能包含
- 空白(之前或之后)
- 下一行可能出现问题
indexOf()
或contains()
,它将检查行中是否有字符串(rule\u write
)
确保值输入while()
使用indexOf()
或contains()
而不是equals()和equalsIgnoreCase()
我相信你读到的那一行可能包含
- 空白(之前或之后)
- 下一行可能出现问题
indexOf()
或contains()
,它将检查行中是否有字符串(rule\u write
)
确保值在()时输入
while()
对于您(可能)尝试写入文件的每一行
如果所有行不相等,则需要写入文件:
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
...
}
对于不相等的每一行,您(可能)尝试写入文件 如果所有行不相等,则需要写入文件:
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
...
}
nextLine()读取文本行。你是怎么写一行行文字的。换行符是否在字符串本身中?nextLine()读取文本行。你是怎么写一行行文字的。换行符是字符串本身吗?