2016-06-01 22 views
-1

Ich versuche, zwei grundlegende Funktionen zu machen, die es mir erlauben, sie aus anderen Klassen aufzurufen, um eine HashMap von der 'getAllData()' zurückzugeben und in die Datei zu schreiben ' writeToFile() ', ohne Glück. Ich habe mich schon eine Weile damit beschäftigt und eine Menge seltsamer Fehler bekommen.BufferedReader/Writer funktioniert nicht in Java

Code:

static HashMap<Integer ,String> getAllData(Integer choice) throws Exception{ 
    InputStream localInputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("Shadow.txt"); 
    BufferedReader br = new BufferedReader(new InputStreamReader(localInputStream)); 
    if (choice.equals(1)){ 
     while ((!data.equals(null))){ 
      data = br.readLine(); 
      dataString = dataString+data; 
     } 
     writeToFile(dataString); 
     br.close(); 
    }return name; 
} 

static void writeToFile(String data) throws IOException{; 
    File file = new File ("Shadow.txt"); 
    FileWriter fileWriter = new FileWriter(file, true); 
    BufferedWriter bw = new BufferedWriter(fileWriter); 
    bw.write(data); 
    bw.newLine(); 
    bw.flush(); 
    bw.close(); 
} 

Mit diesem aktuellen Code, passiert nichts. Die Datei bleibt genau so wie sie ist, obwohl der Code für mich alles daraus lesen und dann anhängen sollte.

Wie kann ich das beheben? Dank

+2

Bitte geben Sie Details über die Fehler (nicht "Menge" und "fremd"). – khelwood

+0

Hinzugefügt @Khelwood "Mit diesem aktuellen Code passiert nichts. Die Datei bleibt genau so wie sie ist, obwohl der Code für mich alles davon lesen und dann anhängen sollte." –

+1

Was glaubst du 'neue Datei (" Shadow.txt "," true ")? – Thomas

Antwort

0

Dies könnte Ihnen helfen:

static void getAllData(final Integer choice) throws Exception { 
    final BufferedReader br = new BufferedReader(new FileReader("Shadow.txt")); 
    String data = ""; 
    final StringBuilder builder = new StringBuilder(); 
    if(choice.equals(1)) { 
     while(data != null) { 
      data = br.readLine(); 
      if(data != null) { 
       builder.append(data + "\n"); 
      } 
     } 
     writeToFile(builder.toString()); 
     br.close(); 
    } 
} 

static void writeToFile(final String data) throws IOException { 
    final File file = new File("Shadow.txt"); 
    final FileWriter fileWriter = new FileWriter(file, true); 
    final BufferedWriter bw = new BufferedWriter(fileWriter); 
    bw.write(data); 
    bw.flush(); 
    bw.close(); 
} 
+0

Da ist er Wenn Sie versuchen, Java zu lernen, sollten Sie auf jeden Fall eine Erklärung hinzufügen, was Sie tun und warum, anstatt nur Code zu kassieren – Thomas

+0

Ich glaube, ich verstehe das, danke Krishna, dass Sie den Code zusammengefügt haben, und vielen Dank, dass Sie mir geholfen und rücksichtsvoll geworden sind . :) Bedeutet viel! –

+0

@Thomas Ich denke, er hat einen Kickstart gegeben, um die Datei zu lesen und in die Datei zu schreiben. Während ich den Code entwarf, nahm ich an, dass er weiß, was er tut, ich habe nur versucht, den Code zu modifizieren und ihn mit minimalen Änderungen zu löschen. –