Zum Inhalt springen

Werte an Datei anhängen statt zu überschreiben


Empfohlene Beiträge

Geschrieben

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

Geschrieben

Ü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.

Geschrieben

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 :)

Geschrieben

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

Geschrieben (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 von flashpixx
Geschrieben

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)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...