gpt4 book ai didi

Java - 如何从文本文件中删除空行

转载 作者:行者123 更新时间:2023-11-29 10:00:11 25 4
gpt4 key购买 nike

我希望能够从文本文件中删除空行,例如:

Average Monthly Disposable Salary
1
Switzerland
$6,301.73
2014

2
Luxembourg
$4,479.80
2014

3
Zambia
$4,330.98
2014

--为此:

Average Monthly Disposable Salary
1
Switzerland
$6,301.73
2014
2
Luxembourg
$4,479.80
2014
3
Zambia
$4,330.98
2014

我所有的代码如下:

public class Driver {

public static void main(String[] args)
throws Exception {

Scanner file = new Scanner(new File("src/data.txt"));

PrintWriter write = new PrintWriter("src/data.txt");

while(file.hasNext()) {
if (file.next().equals("")) {
continue;
} else {
write.write(file.next());
}
}
print.close();
file.close();

}

}

问题是当我返回并再次查看文件时,文本文件是空的。

我不确定为什么会这样,因为它们似乎都是空白字符,\n 显示换行符

最佳答案

您的代码几乎是正确的,但是有一些错误:

  • 您必须使用 .nextLine() 而不是 .next()
  • 您必须在读取原始文件的同时写入不同的文件
  • 您的print.close(); 应该是write.close();
  • 您忘记在每行写入后添加新行
  • 您不需要 continue; 指令,因为它是多余的。

    public static void main(String[] args) {

    Scanner file;
    PrintWriter writer;

    try {

    file = new Scanner(new File("src/data.txt"));
    writer = new PrintWriter("src/data2.txt");

    while (file.hasNext()) {
    String line = file.nextLine();
    if (!line.isEmpty()) {
    writer.write(line);
    writer.write("\n");
    }
    }

    file.close();
    writer.close();

    } catch (FileNotFoundException ex) {
    Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
    }
    }

如果你想保留原来的名字,你可以这样做:

File file1 = new File("src/data.txt");
File file2 = new File("src/data2.txt");

file1.delete();
file2.renameTo(file1);

关于Java - 如何从文本文件中删除空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999999/

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