繁体   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