Hallo zusammen
Mein kleines "Programmprojekt" ist in vollem gange und nun sind nur noch zwei bis drei Punkte offen. Einer davon macht mir allerdings gerade richtig Kopfschmerzen.
Und zwar geht es darum dass ich eine Menge ArrayLists in meinem Programm verwende und diese will ich nun alle einigermassen Strukturiert ausgeben. Dafür habe ich mir auch ein paar For-Schleifen gebaut. Mit dem System.out.println in der Kommandozeile funktioniert es einwand frei.
Nach ein paar Suchminuten habe ich auch gefunden wie man diese Ausgabe in eine Datei ausgeben kann.
Nun sieht mein Code für das exportieren so aus:
Selbst verständlich importiere ich folgende Packages:
Und hiermit gebe ich meine Daten in die Datei:
Alles funktioniert wie gewünscht. Allerdings ist nachdem ich den Code ausführe die Datei die ganze Zeit im Zugriff, somit kann ich sie nicht wegverschieben oder etwas darin rauslöschen usw...
Im Internet ist immer davon geschrieben dass man den "Stream" auch sagen muss er soll die Datei schliessen, allerdings sehe ich nicht wie ich dies in diesem Fall tun soll. Anscheinend habe ich eine "sehr bequeme" Lösung verwendet die weniger Aufwand bedeutet als die anderen Streams mit Writer und Reader die ich gefunden habe...
Wenn ihr das gesamte Projekt haben müsst kann ich euch das gerne zukommen lassen. Allerdings sprenge ich hier den Rahmen wenn ich den ganzen Code reinkopiere.
Eine Frage am Rande: Gibt es eine einfache möglichkeit dass der User wählen kann wo die Datei hingespeichert werden soll? bzw. dass die Datei immer ins "Root"-verzeichnis von dort wo das Programm gestartet wurde hingespeichert wurde?
Ziel ist es am Ende das Programm in einer jar oder exe zu packen und dann muss ich den Usern nur noch diese Datei erhalten.
Vielen Dank für Eure Hilfe.
Gruss
Kneubi
Mein kleines "Programmprojekt" ist in vollem gange und nun sind nur noch zwei bis drei Punkte offen. Einer davon macht mir allerdings gerade richtig Kopfschmerzen.
Und zwar geht es darum dass ich eine Menge ArrayLists in meinem Programm verwende und diese will ich nun alle einigermassen Strukturiert ausgeben. Dafür habe ich mir auch ein paar For-Schleifen gebaut. Mit dem System.out.println in der Kommandozeile funktioniert es einwand frei.
Nach ein paar Suchminuten habe ich auch gefunden wie man diese Ausgabe in eine Datei ausgeben kann.
Nun sieht mein Code für das exportieren so aus:
Selbst verständlich importiere ich folgende Packages:
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
Und hiermit gebe ich meine Daten in die Datei:
Java:
private void printAllPlayerInfo() {
File file = new File("D:/java.txt");
try {
System.setOut(new PrintStream(new FileOutputStream(file,true)));
if(alPlayer.size() >= 1){
Integer i;
for(i = 0; i < alPlayer.toArray().length; i++){
System.out.println("Spieler: " + alPlayer.get(i));
System.out.println("IAP: " + alPlayer.get(jcbPlayer.getSelectedIndex()).getIntIAP());
System.out.println("TAP: " + alPlayer.get(jcbPlayer.getSelectedIndex()).getIntTAP());
System.out.println("KP: " + alPlayer.get(jcbPlayer.getSelectedIndex()).getIntKP());
System.out.println("SP: " + alPlayer.get(jcbPlayer.getSelectedIndex()).getIntSP());
System.out.println("STP: " + alPlayer.get(jcbPlayer.getSelectedIndex()).getIntSTP());
if(alPlayer.get(i).alField.size() >= 1){
Integer j;
System.out.println("--------");
System.out.println("Felder in Besitz");
for(j = 0; j < alPlayer.get(i).alField.toArray().length; j++){
System.out.println(alPlayer.get(i).alField.get(j).toAllString());
}
}
if(alPlayer.get(i).alArmy.size() >= 1){
Integer k;
System.out.println("--------");
for(k = 0; k < alPlayer.get(i).alArmy.toArray().length ; k++){
System.out.println("Armee: " + alPlayer.get(i).alArmy.get(k));
System.out.println("Flying: " + alPlayer.get(i).alArmy.get(k).getBolFlying());
System.out.println("Mechanized: " + alPlayer.get(i).alArmy.get(k).getBolMechanized());
System.out.println("Tired: " + alPlayer.get(i).alArmy.get(k).getBolTired());
System.out.println("Fortified: " + alPlayer.get(i).alArmy.get(k).getBolFortified());
System.out.println("Vigliant: " + alPlayer.get(i).alArmy.get(k).getBolVigliant());
System.out.println("Anti Scouting: " + alPlayer.get(i).alArmy.get(k).getBolAntiScouting());
System.out.println("Under artillery fire: " + alPlayer.get(i).alArmy.get(k).getBolUnderArtilleryFire());
System.out.println("Without HQ: " + alPlayer.get(i).alArmy.get(k).getBolFlying());
System.out.println("Slot;Count;Unitname;Points;Flying;Mechanized;Equipment");
if(alPlayer.get(i).alArmy.get(k).alUnit.toArray().length >= 1){
Integer l;
for(l = 0; l < alPlayer.get(i).alArmy.get(k).alUnit.toArray().length; l++){
System.out.println(alPlayer.get(i).alArmy.get(k).alUnit.get(l).toStringAll());
if(alPlayer.get(i).alArmy.get(k).alUnit.get(l).alEquipment.size() >= 1){
Integer m;
for(m = 0; m < alPlayer.get(i).alArmy.get(k).alUnit.get(l).alEquipment.toArray().length; m++){
System.out.println(";Equipment: " + alPlayer.get(i).alArmy.get(k).alUnit.get(l).alEquipment.get(m));
}
}
}
}
}
}
}
}else{
System.out.println("Keine Daten vorhanden!");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Alles funktioniert wie gewünscht. Allerdings ist nachdem ich den Code ausführe die Datei die ganze Zeit im Zugriff, somit kann ich sie nicht wegverschieben oder etwas darin rauslöschen usw...
Im Internet ist immer davon geschrieben dass man den "Stream" auch sagen muss er soll die Datei schliessen, allerdings sehe ich nicht wie ich dies in diesem Fall tun soll. Anscheinend habe ich eine "sehr bequeme" Lösung verwendet die weniger Aufwand bedeutet als die anderen Streams mit Writer und Reader die ich gefunden habe...
Wenn ihr das gesamte Projekt haben müsst kann ich euch das gerne zukommen lassen. Allerdings sprenge ich hier den Rahmen wenn ich den ganzen Code reinkopiere.
Eine Frage am Rande: Gibt es eine einfache möglichkeit dass der User wählen kann wo die Datei hingespeichert werden soll? bzw. dass die Datei immer ins "Root"-verzeichnis von dort wo das Programm gestartet wurde hingespeichert wurde?
Ziel ist es am Ende das Programm in einer jar oder exe zu packen und dann muss ich den Usern nur noch diese Datei erhalten.
Vielen Dank für Eure Hilfe.
Gruss
Kneubi