簡體   English   中英

如何從java中的文本文件中刪除空行

[英]How to remove blank lines from a text file in java

我正在嘗試將原始文件復制到新文件中。 在新文件中,我想要與原始文件完全相同但沒有空白行。

注意:我查看了其他帖子,但沒有成功。

目前:

1  

2  

3  

我希望如何: - 沒有空行

1  
2  
3

到目前為止,這是我的代碼:

   inputFileName = "x.txt";
   outputFileName = "y.txt";

   inputFile = new BufferedReader(new FileReader(inputFileName));
   outputFile = new PrintWriter(new FileWriter(outputFileName));

   String lineOfText = inputFile.readLine();

   while(lineOfText != null)
   {
       if (lineOfText.isEmpty())
       {
        outputFile.print("null");
       }

       outputFile.println(lineOfText);
       lineOfText = inputFile.readLine();
   } 

   inputFile.close();
   outputFile.close();
}

感謝所有可能提供幫助的人。 我認為print("null")會打印出“nothing”,但它確實打印出null,我不知道如何打印出“nothing”。

如果該行為空,您需要跳過println

while(lineOfText != null)
{
   if (!lineOfText.isEmpty()) {
       outputFile.println(lineOfText);
   }
   lineOfText = inputFile.readLine();
 }

你走在正確的軌道上,但是這個

while(lineOfText != null)
{
   if (lineOfText.isEmpty())
   {
    outputFile.print("null");
   }
   outputFile.println(lineOfText);
   lineOfText = inputFile.readLine();
} 

不應該在空行上寫null 我想你想要的東西

while(lineOfText != null)
{
   if (!lineOfText.isEmpty())
   {
      outputFile.println(lineOfText);
   }
   lineOfText = inputFile.readLine();
} 

此外 ,我建議您使用try-with-resources語句而不是手動管理您的close 在測試之前trim (如評論中所示)可能是個好主意,並且您可以簡化循環,並且應該限制變量可見性。 一起像,

String inputFileName = "x.txt";
String outputFileName = "y.txt";

try (BufferedReader inputFile = new BufferedReader(new FileReader(inputFileName));
        PrintWriter outputFile = new PrintWriter(new FileWriter(outputFileName))) {
    String lineOfText;
    while ((lineOfText = inputFile.readLine()) != null) {
        lineOfText = lineOfText.trim();
        if (!lineOfText.isEmpty()) {
            outputFile.println(lineOfText);
        }
    }
}
public static void main(String[] args) {

        Scanner file;
        PrintWriter writer;

        try {

            file = new Scanner(new File("src/data1.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);
        }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM