Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Werte an Datei anhängen statt zu überschreiben

Empfohlene Antworten

Veröffentlicht

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

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

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

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


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

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)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.