Zum Inhalt springen

in .txt speichern und auslesen


Empfohlene Beiträge

Geschrieben

Hi,

folgende Aufgabe muss gelöst werden:

Eine pg1.txt Datei wird erstellt, falls sie noch nicht vorhanden ist. Dann wird beim ersten mal in die oberste Zeile mein Wert aus der Variable gespeichert.

Beim nächsten Ausführen des Programms muss dann allerdings in die nächste Zeile gespeichert werden, also in die Zweite. Beim dritten mal dann in die Dritte.

Das ganze soll dann so ausgelesen werden, dass alle Zahlen aus jeder Zeile addiert werden, z.B. 3+4+2

Das Ergebnis 9 wird dann in meine Variable gespeichert und mit der Rechne ich dann weiter.

Mein Problem ist im Moment, dass ich nicht weiß, wie ich das passend Auslesen kann, bzw ob ich das bisher richtig speichere.

Mein Code sieht bisher wie folgt aus:

//Speichern der Überstunden Heute

FileWriter fw = null;

try

{

fw = new FileWriter( "fileWriter.txt" );

fw.write(üh5+ühm);

}

catch ( IOException e ) {

System.out.println( "Konnte Datei nicht erstellen" );

}

finally {

try {

if ( fw != null ) fw.close();

} catch (IOException e) {}

}

Geschrieben

sers perdi ;)

Javainsel, mein toller Freund ^^

Hab darin schon oft gesucht aber werd da irgendwie nie richtig fündig.

Sieht aber recht ok aus, ich schau mir das mal an.

Hatte eigentlich gehofft, dass ihr mir ein paar Beispiel Quellcodes posten könntet, damit ich das ganze besser versteh.

edit: Also steht drin wie ich speicher und wie ich ordner erstelle und durchsuche nach dateien usw..

Speichern kann ich ja schon, wollte eigentlich wissen, wie ich Werte aus einer Datei auslesen kann.

Geschrieben

ah, kann leider nimmer editieren :/

Also ich kann jetzt speichern und auslesen, hab ich hinbekommen.

Allerdings ist die Frage, wie speicher ich in eine neue Zeile und wie lese ich die einzelnen Zeilen aus?

Mein Code:

// Speichern der Überstunden Heute

FileWriter fw = null;

try

{

fw = new FileWriter( "fabend.txt" );

fw.write(üh5+ühm);

}

catch ( IOException e ) {

System.out.println( "Konnte Datei nicht erstellen" );

}

finally {

try {

if ( fw != null ) fw.close();

} catch (IOException e) {}

}

//__

//Auslesen der Überstunden Total

String filename = "fabend.txt";

byte buffer[] = new byte[ 4000 ];

FileInputStream in = null;

try

{

in = new FileInputStream( filename );

int len = in.read( buffer, 0, 4000 );

String str = new String( buffer, 0, len );

t4.setText(str);

}

catch ( IOException e ) { System.out.println( e ); }

finally

{

try {

if ( in != null ) in.close();

} catch (IOException e) {}

}

//-

Geschrieben

hm ok, wo genau muss das jetzt hin?

Das ist ja nur der reader, ich wollt jetzt eigentlich erstmal bei meinem Writer noch hinbekommen, dass er immer den Wert in eine neue Zeile schreibt:


// Speichern der Überstunden Heute
FileWriter fw = null;
try
{
fw = new FileWriter( "fabend.txt" );
fw.write(mg);
}
catch ( IOException e ) {
System.out.println( "Konnte Datei nicht erstellen" );
}
finally {
try {
if ( fw != null ) fw.close();
} catch (IOException e) {}
}
//_
[/PHP]

Geschrieben

// Speichern der Überstunden Heute

BufferedWriter fw = null;

try

{

fw = new BufferedWriter(new FileWriter( "fabend.txt" ,true));

fw.write(mg);

fw.newLine();

}

catch ( IOException e ) {

System.out.println( "Konnte Datei nicht erstellen" );

}

finally {

try {

if ( fw != null ) fw.close();

} catch (IOException e) {}

}

//_

Geschrieben

tkdmatze, mein Meister, funktioniert :uli

Möchte jetzt allerdings, dass er nicht jedesmal in eine neue Zeile schreibt, sondern dass er Wert a immer in die erste Zeile schreibt und Wert b immer in die zweite Spalte

Geschrieben

mh sry, verschrieben.

in die erste zeile schreibt er immer wert a und in die zweite zeile schreibt er immer b

kann ich das so machen?

BufferedWriter fw = null;

try

{

fw = new BufferedWriter(new FileWriter( "fabend.txt" ,true));

fw.write(a);

fw.newLine();

fw.write(B);

}

catch ( IOException e ) {

System.out.println( "Konnte Datei nicht erstellen" );

}

finally {

try {

if ( fw != null ) fw.close();

} catch (IOException e) {}

}

Geschrieben

new FileWriter( "fabend.txt" ,true));

== append true

also "anhängen an das was vorher war"

dann entsprechend false setzen ;)

new FileWriter( "fabend.txt" ,false));

Geschrieben

versteh ich nich so ganz :confused:

kannste das mal mit den code so schreiben, dass ich seh wo ich was anhängen muss ?

so?

BufferedWriter fw = null;

try

{

fw = new BufferedWriter(new FileWriter( "fabend.txt" ,true));

fw.write(a);

fw.newLine();

fw = new BufferedWriter(new FileWriter( "fabend.txt" ,false));

fw.write(B);

}

catch ( IOException e ) {

System.out.println( "Konnte Datei nicht erstellen" );

}

finally {

try {

if ( fw != null ) fw.close();

} catch (IOException e) {}

}

Aber wie gesagt, soll nur in die erste und zweite Zeile schreiben, nichtsmehr mit fortlaufend untereinander

Geschrieben

ok, hab das drin und funktioniert auch, hab jetzt aber ein anderes problem, dass sich die beiden Werte nicht überschreiben lassen.

Kannste dir meinen Quelltext mal plz anschauen ?



	//Einlesen der Überstunden Total


		String filename = "fabend.txt";



	    byte buffer[] = new byte[ 4000 ];


	    FileInputStream in = null;


	    try

	    {

	      in = new FileInputStream( filename );


	      int len = in.read( buffer, 0, 4000 );

	      mgg = new String( buffer, 0, len );


	      t4.setText(mgg);

	    }

	    catch ( IOException e ) { System.out.println( e ); }


	    finally

	    {

	      try {

	        if ( in != null ) in.close();

	      } catch (IOException e) {}

	    }

            //_




	    //Überstunden Total + Überstunden Heute (fürs Speichern)


	    mggi=Integer.valueOf(mgg).intValue();


	    if (mggi<=0)

	    	{}

	    else

	    	{


	    mgi=mggi+üh2;

	    mg=String.valueOf(mgi);

	    	}


//		Speichern der Überstunden Heute

		BufferedWriter fw = null;

	    try

	    {

	      fw = new BufferedWriter(new FileWriter( "fabend.txt" ,false));


	      if (mggi<=0)

	      	{

	    	  fw.write(üh2s);

	    	  fw.newLine();

	    	  fw.write("1");


	      	}

	      else

	      {

	      fw.write(mg);

	      fw.newLine();

	      fw.write("1");

	      }

	    }

	    catch ( IOException e ) {

	      System.out.println( "Konnte Datei nicht erstellen" );

	    }

	    finally {

	      try {

	        if ( fw != null ) fw.close();

	      } catch (IOException e) {}

	    }

		    //_

	}

	}

Geschrieben

mit diesem code geht es, die ausgabe a in der .txt wird überschrieben:


fw = new BufferedWriter(new FileWriter( "fabend.txt" ,false));


	      if (mggi<=0)

	      	{

	    	  fw.write(üh2s);

Aber sobald ich folgendes Einfüge, werden die Ausgaben von a bzw b in der .txt anscheinend nichtmehr überschrieben:

fw = new BufferedWriter(new FileWriter( "fabend.txt" ,false));


	      if (mggi<=0)

	      	{

	    	  fw.write(üh2s);

		      fw.newLine();

		      fw.write("1");

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