Thongall Geschrieben 28. November 2011 Geschrieben 28. November 2011 Hallo, ich versuche ein Programm zu schreiben was innerhalb einer äuseren Schleife sowohl Text auf dem Bildschrim als auch in eine Datei ausgibt. Leider wird aber die Datei jedesmal wenn sie wieder geöffnet wird überschieben so das ich nur die Aktuelle Zeile dort stehen hab. Der Code: public class Test_Array { public static void main(String[] args) { int sum=0; int anzahl; int j=1; int z; do { Out.print("Anzahl Zufallszahlen in " + j + "-ter Zeile: "); anzahl=In.readInt(); if (anzahl==-1){break;} Out.open("test4.txt"); Out.print(anzahl + " "); for (int i=0; i<anzahl; i++){ z=(int) (Math.random() * 6) + 1; Out.print(z + " "); sum+=z; } Out.println(); Out.close(); Out.println("Kontrollsumme: " + sum); sum=0; j++; }while (anzahl!=-1); } } Wäre sehr dankbar falls mir jemand helfen könnte MfG Thongall Zitieren
flashpixx Geschrieben 28. November 2011 Geschrieben 28. November 2011 Überlege mal was Du dort programmiert hast. Mal in Worten (und alles was nicht zu dem Dateizugriff notwendig ist, einmal ignorieren): do { datei "test4.txt" öffnen in Datei "anzahl + _ " schreiben für i = 0 bis anzahl -1 do { in Datei schreiben "z + _ " } in Datei Leerzeile schreiben Datei schließen } so lange anzahl != -1; Überlege Dir einmal, was passiert wenn die do-while-Schleife zwei mal durchlaufen wird. Zitieren
Thongall Geschrieben 28. November 2011 Autor Geschrieben 28. November 2011 Er öffnet die Datei beim zweiten durchgang wieder und überschreibt alles was drinn steht. Nur weiß ich nicht wie ich das umgehen kann damit er in die zweite Zeile schreibt. <- Anfänger Zitieren
flashpixx Geschrieben 28. November 2011 Geschrieben 28. November 2011 Nur weiß ich nicht wie ich das umgehen kann damit er in die zweite Zeile schreibt. <- Anfänger Gerade weil Du Anfänger bist, sollst Du etwas lernen, d.h. was musst Du machen, damit er eben richtig arbeitet. Das ganze einmal in Worten beschreiben reicht aus, das ganze in Code formulieren, ist dann der zweite Schritt Zitieren
Thongall Geschrieben 28. November 2011 Autor Geschrieben 28. November 2011 (bearbeitet) datei "test4.txt" öffnen do { in Datei "anzahl + _ " schreiben für i = 0 bis anzahl -1 do { in Datei schreiben "z + _ " } in Datei Leerzeile schreiben } so lange anzahl != -1; Datei schließen Allerding habe ich dann das Problem das die Werte auf dem Bildschirm auch in die Datei geschrieben werden. Bearbeitet 28. November 2011 von flashpixx Zitieren
flashpixx Geschrieben 28. November 2011 Geschrieben 28. November 2011 Der Ansatz ist doch schon mal gut. In Deinem Code ist die Variable Out nicht erkennbar, also welchen Typ sie hat usw. Ansonsten schau Dir an, wie man mit Dateiströmen umgeht Java ist auch eine Insel – 12 Datenströme und Dateien Zitieren
Sacaldur Geschrieben 30. November 2011 Geschrieben 30. November 2011 wenn in die Datei etwas anderes ausgegeben werden soll, als auf dem Bildschirm, dann musst du die Ausgabe auch trennen du musst also sagen, was genau in der Datei ausgegeben werden soll und was auf dem Bildschirm ausgegeben werden soll bzw. in deinem Fall, wo bestimmte Teile der Ausgabe sowohl in die Datei, als auch auf den Bildschirm gehen sollen, kannst du für die Ausgabe in die Datei das verwenden, was du bisher hast und für die Ausgabe ausschließlich auf den Bildschirm etwas anderes (wie flashpixx bereits geschrieben hat: der Typ von Out ist nicht erkennbar - deshalb wird dir für die Ausgabe wohl keiner ohne Spekulationen genauer sagen können, was du machen könntest) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.