2016-07-28 22 views
0

Mein Problem, dass ich das ganze Ergebnis meiner Berechnungen in der Textdatei bbbder Inhalt einer Variable in eine Textdatei ist jedes Mal Speichern seinen Wert ändert

aaa, 
aab, 
aba, 
abb, 
baa, 
bab, 
bba, 
bbb 

nicht nur die letzte Berechnung angezeigt werden möchten. Ich denke, dass dies erreicht werden kann, indem man eine for-Schleife schreibt, die jede Kombination ausdruckt? Wie würde ich das tun?

Hier ist mein Code:

package test; 

import java.io.FileWriter; 
import java.io.IOException; 

public class VarWriterTest{ 
String newline = System.getProperty("line.separator"); 

    public static void main(String[] args) { 
     VarWriterTest VWT = new VarWriterTest(); 
     char[] alphalist = new char[] {'a', 'b'}; 
     StringExcersise.possibleStrings(3, alphalist,""); 
    } 
} 
class StringExcersise { 

    public static void possibleStrings(int maxLength, char[] alphabet, String curr) { 

     if(curr.length() == maxLength) { 
      try(FileWriter out = new FileWriter("E:\\combo.txt");) { 
        out.write(curr.toCharArray()); 


      }catch(IOException ioe){ 
       System.out.println("Could not write file. Sorry."); 
      } 

     }else{ 
      for(int i = 0; i < alphabet.length; i++) { 
       String oldCurr = curr; 
       curr += alphabet[i]; 
       possibleStrings(maxLength,alphabet,curr); 
       curr = oldCurr; 
      } 
     } 
    } 
} 

Sehr wichtig! Bitte lesen

Wenn Sie diese Frage als ein Duplikat markieren, verweisen Sie mich bitte nicht nur auf die Frage. Bitte finden Sie eine Antwort, die ein Szenario in der Nähe dieser Frage angemessen beantwortet. Glauben Sie es oder nicht, nicht alle Fragen, die als Duplikate gekennzeichnet sind, sind tatsächlich Duplikate.

Antwort

0

Warum schreiben Sie es nicht einfach in die Datei, wenn Sie es ändern? Verschieben Sie einfach die Schreiblogik von Ihrem Basisfall in Ihren else Block. Wenn Sie dies tun, können Sie den FileWriter natürlich als Parameter übergeben, anstatt ihn bei jeder Iteration zu öffnen und zu schließen.

+0

public static void possibleStrings (int maxLength, char [] Alphabet, String curr, Filewriter out) { if (curr.length() alexgbelov