Veröffentlicht 20. Juni 200619 j 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) {} }
20. Juni 200619 j Als generelle Einführung Java und IO: http://www.galileocomputing.de/openbook/javainsel4/javainsel_12_000.htm
20. Juni 200619 j 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.
20. Juni 200619 j 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) {} } //-
20. Juni 200619 j BufferedReader reader = null; reader = new BufferedReader(new FileReader(p_File)); String nextLine = null; try { while((nextLine = reader.readLine()) != null) { [/PHP]
20. Juni 200619 j 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]
20. Juni 200619 j // 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) {} } //_
20. Juni 200619 j 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
20. Juni 200619 j 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(; } catch ( IOException e ) { System.out.println( "Konnte Datei nicht erstellen" ); } finally { try { if ( fw != null ) fw.close(); } catch (IOException e) {} }
20. Juni 200619 j new FileWriter( "fabend.txt" ,true)); == append true also "anhängen an das was vorher war" dann entsprechend false setzen new FileWriter( "fabend.txt" ,false));
20. Juni 200619 j 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(; } 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
20. Juni 200619 j lol fw = new BufferedWriter(new FileWriter( "fabend.txt" ,false)); fw.write(a); fw.newLine(); fw.write(;
20. Juni 200619 j 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) {} } //_ } }
20. Juni 200619 j 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");
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.