2016-04-24 6 views
0

Ich habe versucht, die Ausgabe dieses Codes in einer TXT-Datei gedruckt werden, aber ich bekomme eine leere Datei als Ausgabe, aber ich sehe die richtigen Ergebnisse in der Konsole, so ist das Problem mit dem StreamWriter I denken.Die Datei wird nicht ausgedruckt, was mache ich falsch?

Also, was mache ich falsch?

package Hierarchies; 

    public static void generateHierarchy() { 

     Set<Entry<Long, Node>> iterator = graph.entrySet(); 
     int i =0; 
     for(Entry<Long,Node> e : iterator) { 
      System.out.println(i++ +" - " +e.getValue().firstParents()); 
     } 

    } 

    @SuppressWarnings({ "resource" }) 
    public static void main(String[] args) throws JWNLException { 
     // TODO Auto-generated method stub 
     dictionary = Dictionary.getDefaultResourceInstance(); 

     File dir = new File("C:/Users/D060891/Desktop/Thesis/sentencesNYT"); 

     for (File file : dir.listFiles()) { 

      try { 
       BufferedReader input = new BufferedReader(new FileReader(file)); 
       String line; 

       while ((line = input.readLine()) != null) { 
        demonstrateListHelper(line);        
       } 
      } 
      catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

     generateHierarchy(); 
     PrintStream out; 
     try { 
      out = new PrintStream(new FileOutputStream("output.txt")); 
      System.setOut(out); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 
+0

wo ist Ihre Datei Schriftsteller? – haifzhan

+1

Mögliches Duplikat von [Wie erstelle ich eine Datei und schreibe in eine Datei in Java?] (Http://stackoverflow.com/questions/2885173/how-to-create-a-file-and-write-to-a- file-in-java) – pczeus

+1

Mögliche Gründe: 1) Sie spülen oder schließen den PrintSteam nicht. 2) Ihr Verzeichnis ist leer und es wird keine Datei gelesen. 3) Alle Dateien in diesem Verzeichnis sind leer. –

Antwort

0

Ich sehe nicht, dass Sie etwas in die Datei schreiben. Ich sehe nur, wie Sie einen PrintStream zu einer Datei erstellen und sie System.out zuweisen, aber dann drucken Sie nichts. Rufen Sie

+0

zugewiesen haben, das war ein bisschen peinlich, ich sehe, was jetzt passiert ... Ich habe erst vor 6 Monaten angefangen zu coden und aus irgendeinem Grund mache ich solche dummen Fehler, danke:) – LuckyOwl

+0

@LuckyOwl Wir waren alle dort. Deshalb gibt es stackoverflow;) – Nadir

0

Spülen und schließen Sie den Stream. Möglicherweise wird das Programm beendet, bevor Daten auf die Festplatte geschrieben werden. Beachten Sie, dass Streams auf höherer Ebene einen Puffer beibehalten und daher nicht direkt auf die Festplatte schreiben.

-1

Sie versuchen, die Datei zu schreiben, indem Sie System.out umleiten, aber umleiten, erst nachdem die Daten in System.out geschrieben wurden.

sollten Sie so etwas wie tun:

void printHierarchy(PrintStream ps) { 
    ... 
    ps.println(...) 
} 

und in main():

try (PrintStream ps = new PrintStream(new FileOutputStream("output.txt"))) { 
    printHierarchy(ps); 
} 
+0

Das war eigentlich die Lösung ja, ich habe es durch die vorher gegebene Antwort behoben, danke. – LuckyOwl