2016-10-19 2 views
1

Ich habe die Datendatei "ReadFile1.txt". Ich möchte alle Daten aus ReadFile1.txt lesen und diese Daten bearbeiten und dann die Ergebnisse in eine andere Datei "WriteFile2.txt" schreiben. Hier ist meine Funktion. Das Problem ist, es liest nur 2., 4. usw. und schreibt nur 2. Ergebnis. Was ist falsch in diesem Code? Ich schätze Ihre Hilfe.Aus Datei lesen und manipulieren, dann mit java in eine andere Datei schreiben?

public void doManipulate() throws NumberFormatException, IOException { 
     int multiple = 10; 

     try { 
     FileInputStream file = new FileInputStream("ReadFile1.txt"); 
     InputStreamReader input = new InputStreamReader(file); 
     BufferedReader reader = new BufferedReader(input); 

     String data1; 
     while ((data1 = reader.readLine()) != null) { 

      int data2 = 0; 
      data1 = reader.readLine(); 

      data2 = Integer.parseInt(data1); 
      int compressedFrames = data2*multiple; 


      File file2 = new File("WriteFile2.txt"); 
      FileWriter writer = new FileWriter(file2); 

      writer.write(String.valueOf(compressedFrames) + "\n"); 


      writer.flush(); 

      writer.close(); 

      } 
      reader.close(); 


      } catch (IOException e) { 
       e.printStackTrace(); 
      } 


    } 
+0

Warum erstellen Sie Datei in Schleife? –

Antwort

0

Du nennst reader.readLine() zweimal für jede Iteration der while Schleife - das erste Mal in der Schleife Erklärung, die jede ungerade Zeile liest, und das zweite ist nur ein paar Zeilen nach unten (data1 = reader.readLine();). Der zweite Anruf bläst alles weg, was beim ersten gelesen wurde, bevor Sie es analysieren können. Durch das Entfernen des zweiten Anrufs sollte das Problem "Jede zweite Zeile" behoben werden.

Ein weiteres Problem ist, dass Sie den Schriftsteller bei jeder Iteration der Schleife while sind zu schließen - schließen Sie den Schriftsteller, bis die while Schleife oder getan wird Ihre Ausgabedatei wird nur das erste darin analysiert Datenelement nach dem Programm schließt sich.

+0

Danke. Ich habs!! – Rose

Verwandte Themen