2016-03-24 12 views
1

Ich habe eine Datei haben viele Datensätze in Millionen. hier möchte ich zuerst 2000 Datensätze lesen und nach dem Lesen löschen. Ich kann lesen, aber bitte lassen Sie mich wissen, wie zu löschen.löschen Sie zuerst 1000 Zeilen aus Textdatei

public class Files { 


    public static void files(int index) throws IOException { 
     try { 

      //numbers num = new numbers(); 
      BufferedReader br = null; 
      BufferedWriter bw = null; 
      try { 

       String sCurrentLine = ""; 
       br = new BufferedReader(new FileReader("data.txt")); 
       bw = new BufferedWriter(new FileWriter("File_2.txt")); 

       int i = 0; 
       while ((sCurrentLine = br.readLine()) != null && i < index) { 
        System.out.println(++i + " " + sCurrentLine); 
        bw.write(sCurrentLine); 
        bw.write(System.getProperty("line.separator")); 
        //sCurrentLine = br.readLine(); 
       } 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 
       try { 
        br.close(); 
        bw.close(); 
        if (br != null) { 
         br.close(); 
        } 
       } catch (IOException ex) { 
        ex.printStackTrace(); 
       } 
      } 

     } catch (Exception e) { 

     } 
    } 

} 
+0

Bitte formatieren Sie den Code richtig – Dakkaron

+1

möglich Duplikat http://stackoverflow.com/questions/1377279/find-a-line-in-a-file-and-remove-it –

+1

und btw, ich sehe nicht, du erhöhst mich überall. –

Antwort

0

Sie haben mehrere Möglichkeiten: Wenn Sie die vorhandene Datei aktualisieren möchten - lesen und gleichzeitig zu schreiben, müssen Sie einen RandomAccessFile Stream. Damit können Sie die Datei sowohl für das Lesen als auch für das Schreiben öffnen. Auf der anderen Seite könnte es riskant sein, die gleiche Datei zu aktualisieren, ohne das Original beizubehalten, da Ihre Anwendung irgendwann abstürzen könnte und Sie eine beschädigte Datei erhalten.

Ein anderer Weg wäre, eine neue temporäre Datei zu nehmen und den Teil zu schreiben, den Sie in dieser Datei behalten möchten, aber wenn Sie Millionen von Datensätzen haben, ist dies möglicherweise nicht effizient.

Verwandte Themen