Array in eine .txt schreiben

dekoker

Grünschnabel
Hallo,

ich suche nach der Möglichkeit, mein 2-dimensionales Array in eine .txt Datei zu schreiben, da das DOS-Fenster nur eine begrenzte Ausdehnung besitzt.

Dank im Voraus,
dekoker
 
Java:
public void save(File file) {
try {
	BufferedWriter writer = new BufferedWriter(new FileWriter(file));
        for (int i = 0; i < arr.length; i++) {
             for (int j = 0; j < arr[i].length; j++) {
                  writer.write(arr[i][j] + ";");   //mit Komma getrennte Werte
              }
         }
         writer.close();

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

Nicht sehr schön formatierte Datei, aber es steht alles mit Komma getrennt drinn.
btw. mit writer.newLine() könnte man zB eine neue Zeile anfangen. In den Parameter kommt dann die Datei, in die du schreiben möchstest, die du mithilfe eines JFileChooser zB auswählen kannst.
 
Zuletzt bearbeitet:
Tut mir leid wenn ich das thema aus der senke hole, aber wie bekomm ich es hin das ich genau diese textdatei wieder auslese?
bekomms nicht hin :-(
 
@IceDragon208

Mit meinem Code gar nicht, da es einfach eine lange Wurst schreibt und man nicht unterscheiden kann, wann eines der Arrays zu Ende ist.

Wenn man meinen Code allerdings abändert zu:
Java:
public void save(File file) {
try {
    BufferedWriter writer = new BufferedWriter(new FileWriter(file));
        for (int i = 0; i < arr.length; i++) {
             for (int j = 0; j < arr[i].length; j++) {
                  writer.write(arr[i][j] + ";");   //mit Komma getrennte Werte
              }
              writer.newLine(); // <-----------------
         }
         writer.close();
 
}
catch (IOException e) {
e.printStackTrace();
}

dann weiß man wann ein Array zu Ende ist und kann es mit dieser Methode wieder einlesen:

Java:
public String[][] read(File file) {
		List<String[]> list = new ArrayList<String[]>();
		try {
			BufferedReader read = new BufferedReader(new FileReader(file));
			String in = read.readLine();
			
			while (in != null) {
				String[] line = in.split(";");
				list.add(line);
				in = read.readLine();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		String[][] tmp = new String[list.size()][];
		return list.toArray(tmp);
	}
 
Hallo :) Vielleicht könnte mir nochmal jemand helfen, habe versucht die einlese Datei einzubauen, dass sieht bei mir so aus:
Code:
static void einlesen(File datei) { 
    try {
      BufferedWriter writer = new BufferedWriter(new FileWriter(datei));
      for (int i = 0; i < 13; i++) {
        for (int j = 0; j < 13; j++) {
          writer.write(feld[i][j] + ";");   //mit Komma getrennte Werte
        }
        writer.newLine(); // <-----------------
      }
      writer.close();
      
    }
    catch (IOException e) {
      e.printStackTrace();
    }
  }


in meiner main steht einlesen(datei);

jedoch zeigt mir es jetzt den fehler an, dass java das symbol "datei" nicht finden kann

(Compiliere F:\NEU\Kino2\Uebung.java mit Java-Compiler
Uebung.java:100:14: error: cannot find symbol
einlesen(datei.txt);
^
symbol: variable datei
location: class Uebung
1 error)

Vielleoicht könnte mir jemand helfen :(
 
Zurück