Java程式刪除文字檔案中的重複行
Set 介面不允許重複元素。該介面的 add() 方法接受元素並將其新增到 Set 物件中,如果新增成功則返回 true,如果嘗試使用此方法新增現有元素,則新增操作將失敗並返回 false。
問題陳述
給定一個包含重複行的檔案,編寫一個 Java 程式來讀取該檔案,刪除重複行,並將唯一行寫入新檔案。
輸入
Hello how are you Hello how are you welcome to Tutorialspoint
輸出
Hello how are you welcome to Tutorialspoint
基本方法
從檔案中刪除重複行的基本方法 -
- 步驟 1. 例項化 Scanner 類(任何從檔案讀取資料的類)
- 步驟 2. 例項化 FileWriter 類(任何將資料寫入檔案的類)
- 步驟 3. 建立 Set 介面 的物件。
- 步驟 4. 讀取檔案的每一行,將其儲存在名為 input 的字串中。
- 步驟 5. 嘗試將此字串新增到 Set 物件中。
- 步驟 6. 如果新增成功,則將該特定行追加到 FileWriter 中。
- 步驟 7. 最後,將 FileWriter 的內容重新整理到輸出檔案。
如果檔案包含某一行多次,則第一次將其新增到 Set 物件中,並追加到 FileWriter 中。
如果在讀取檔案中的所有行時再次遇到相同的行,由於它已存在於 Set 物件中,因此 add() 方法將拒絕它。
示例
以下 Java 程式刪除上述檔案中的重複行,並將它們新增到名為 output.txt 的檔案中。
import java.io.File; import java.io.FileWriter; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class DeletingDuplcateLines { public static void main(String args[]) throws Exception { String filePath = "D://sample.txt"; String input = null; //Instantiating the Scanner class Scanner sc = new Scanner(new File(filePath)); //Instantiating the FileWriter class FileWriter writer = new FileWriter("D://output.txt"); //Instantiating the Set class Set set = new HashSet(); while (sc.hasNextLine()) { input = sc.nextLine(); if(set.add(input)) { writer.append(input+"
"); } } writer.flush(); System.out.println("Contents added............"); } }
輸出
Contents added............
output.txt 的內容將是
Hello how are you welcome to Tutorialspoint
廣告