簡體   English   中英

如何從文本文件中刪除或刪除特定行

[英]How to delete or remove a specific line from a text file

我試圖從文件中刪除一行。 我在互聯網上搜索。 我提出了一種方法。 就這個。

public void removeLine(BufferedReader br , File f,  String Line) throws IOException{
    File temp = new File("temp.txt");
    BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
    String removeID = Line;
    String currentLine;
    while((currentLine = br.readLine()) != null){
        String trimmedLine = currentLine.trim();
        if(trimmedLine.equals(removeID)){
            currentLine = "";
        }
        bw.write(currentLine + System.getProperty("line.separator"));

    }
    temp.renameTo(f);
    bw.close();
    br.close();
}   

我不知道這種方法有什么問題。 你可以幫幫我嗎?

這是我使用這種方法的地方

delete.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent evt) {


        BufferedReader br = null;
    try{
    String enterID2 =  enterID1.getText().trim();
        File books = new File("books.txt");
         br = new BufferedReader(new FileReader(books));
         removeLine(br , books, enterID2);
         System.out.println("done");

    }catch (NumberFormatException e1) {
               System.out.println("This is not a number");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }



    }
    });

刪除是一個JButton。 沒有收到錯誤。

試試這個代碼:

public static void removeLine(BufferedReader br , File f,  String Line) throws IOException{
    File temp = new File("temp.txt");
    BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
    String removeID = Line;
    String currentLine;
    while((currentLine = br.readLine()) != null){
        String trimmedLine = currentLine.trim();
        if(trimmedLine.equals(removeID)){
            currentLine = "";
        }
        bw.write(currentLine + System.getProperty("line.separator"));

    }
    bw.close();
    br.close();
    boolean delete = f.delete();
    boolean b = temp.renameTo(f);
}

暫無
暫無

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

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