2016-06-29 5 views
-1

Hallo ich arbeite an einem String, liest Eingaben und druckt sie dann in der cmd Nach dem Auslesen der Zeile speichere ich es auch in ein Textdokument, aber es gibt die erste Eingabeprintln gibt nur einen einzigen Eingang aus

aus

Hier ist mein Code:

import java.io.*; 
public class Stringtest { 
    public static void main(String[] args) throws IOException { 
     BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
     String[] s = new String[10]; 
     for (int i = 0; i <= 9; i++){ 
      System.out.println ("ord" + (i + 1) + "?"); 
      s[i]=input.readLine(); 
     } 
     for (int i = 9; i >= 0; i--){ 
      System.out.println (s[i]); 
      File path = new File("ord.txt"); 
      PrintWriter a = new PrintWriter (path); 
      a.println (s[i]); 
      a.close(); 
     } 
    } 
} 

Danke

+0

Ich sehe die Frage hier nicht –

+3

Sie erstellen den PrintWriter in jeder Iteration, so überschreiben Sie die Datei jedes Mal – Jens

+1

gut fangen @Jens. Veröffentlichen Sie das als Antwort und wir könnten das aus –

Antwort

2

Sie erstellen die Printwriter in jeder Iteration, so dass Sie jedes Mal die Datei überschreibt.
Code ändern zu:

PrintWriter a = new PrintWriter (path); 
for (int i = 9; i >= 0; i--){ 
    System.out.println (s[i]); 
    File path = new File("ord.txt"); 
    a.println (s[i]); 
} 
a.close(); 
0

diese Zeile für außerhalb Ihrer Put (...)

PrintWriter a = new PrintWriter(path) 

Was Sie taten es in jeder Iteration neu zu erstellen, so dass Sie, was außer Kraft gesetzt war in es.

0

Für den Fragesteller der Frage bestand das Problem darin, dass PrintWriter für jede Iteration der Schleife erstellt wurde und daher in jeder Iteration der Loopdatei neu geschrieben wurde. Sie können dies wie folgt testen:

for (int i = 0; i < 10; i++) { 
      PrintWriter writer=new PrintWriter("C:/abc.txt"); 
      writer.print("a"+i); 
      writer.close(); 
     } 

Die abc.txt in obigen Fall erstellt werden nur haben a9 drin.

Verwandte Themen