2017-05-01 1 views
0

So habe ich diese book.txt DateiWie lösche ich Daten in einer Textdatei in Java basierend auf zwei Variablen?

111 Java Josh Javaaaaaaaaa J1 
112 HTML Alex Html J2 

enthält, wollte ich eine der Datei auf dem ID oder den Namen mit dem folgenden Code basiert löschen:

public void DeleteBook() 
    { 
     try 
     { 
      String bidToDelete; 
      System.out.println("Enter Book Name or Book ID to Delete:"); 
      bidToDelete = sc.next(); 
      File f = new File("C:\\Users\\HP\\Documents\\NetBeansProjects\\LMSConsole\\book.txt"); 
      FileReader fr = new FileReader(f); 
      BufferedReader br = new BufferedReader(fr); 
      File TempFile = new File("temp.txt"); 
      PrintWriter pw = new PrintWriter(TempFile); 
      String line = br.readLine(); 
      while(line!=null) 
      { 
       System.out.println(line); 
       String[] wordsinline = line.split(" "); 
       if(wordsinline[0]||wordsinline[1].equals(bidToDelete)) 
       { 


        f.delete(); 
        pw.write(line); 
        TempFile.renameTo(f); 
        if(TempFile.renameTo(f)) 
         System.out.println("Book has been deleted."); 
        else 
         System.out.println("Cannot delete file."); 
       } 
       else 
       { 
        pw.println(line); 
       } 
       line = br.readLine(); 
      } 

      br.close(); 
      pw.close(); 
     } 
     catch(IOException ex) 
     { 
      System.out.println(ex); 
     } 
    } 

Der Fluss ist die Trennung Datei gesucht, während der Rest in die temporäre TXT-Datei verschoben wurde. Sobald die Originaldatei gelöscht wurde, wird der Temp-Text als vorherige Originaltxt-Datei umbenannt.

Es erzeugt weiterhin Fehler. Irgendein Rat? Ich bin ein Neuling in dieser Datei-Handling-Sache. Vielen Dank!

+0

Welchen Fehler erzeugt es weiter. Einfacher "Fehler" deckt viel Boden ab! –

+0

Jetzt ist der Fehler weg. Aber ich kann die TXT-Datei nicht löschen, sie schreibt einfach dasselbe in temp.txt um – Irfan

Antwort

0

Sie versuchen, die Originaldatei zu löschen, während Sie lesen es immer noch in der Mitte sind, sowie Umbenennung der tmp-Datei, während Sie noch in der Mitte des Schreibens es sind.

Lesen Sie die Buchdatei den ganzen Weg durch, schreiben Sie in die tmp-Datei, welche Zeilen Sie behalten möchten. Schließen Sie dann Ihren Reader und Writer, löschen Sie die Buchdatei und benennen Sie die tmp-Datei um.

Verwandte Themen