1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1236
1236
EMPFEHLEN
-
Hallo,
nach langer Google-suche sowohl auf Deutsch als auch auf Englisch bleibt mir wohl nichts mehr übrig als die Frage hier zu stellen.
Ich würde gerne aus einer Datei, in der mehrere Werte gespeichert sind (sagen wir mal durch Zeilenumbrüche getrennt), ebendiese Werte auslesen und in jeweils einer variable speichern; danach mit diesen weitere operationen durchführen und am ende wieder etwas in die datei schreiben.
Wie ich etwas in eine Datei schreibe weis ich bereits; das Problem ergibt sich beim auslesen.
Es gibt zwar hunderte Beispiele wie man den Inhalt einer Datei auslesen und sich via Konsole ausgeben lassen kann, doch damit ist mir leider nicht geholfen, da ich die Informationen/Werte ja zunächst innerhalb des Programms weiterverarbeiten möchte.
Alle meine Versuche, mir auch nur eine Zeile als "brauchbare" Variable ausgeben zu lassen sind gescheitert
Wenn mir also jemand weiterhelfen kann wäre ich sehr dankbar!
P.S.: nachdem ich mich erst seit kurzem mit Java beschäftige bitte ich darum, allzu theoretische vorschläge lieber wegzulassen, ich bin im moment schon verwirrt genug
MfG Sidahan
-
20.11.10 04:02 #2
Eigentlich ist das eine ziemlich simple Sache, vielleicht hast du es nur in keinem Beispiel richtig verstanden, es wurde nicht explizit darauf eingegangen oder einfach nur doof erklärt. Aber wie auch immer, ich habe für dich einfach mal schnell was zusammengekraxelt. Hoffe es hilft dir weiter. Eigentlich sollten die Kommentare alles sagen, ansonsten einfach nachfragen.
Es sei dazu gesagt, dass das nur ein exemplarisches Beispiel ist, das heißt, dass der Code nur zur Veranschaulichung ist und deshalb nicht sauber programmiert ist, z.B. ist fast die gesammte Logik in der main-Methode, was so nicht sein sollte.
Naja, hier jedenfalls der Code:
Der Dateiinhalt:Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
package de.tutorials.forum.hilfe.sidahan.datei.wertespeichern; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.util.LinkedList; public class WerteSpeichernSample { /** * Programmstartpunkt und in diesem Fall fast die gesammte Programmlogik * (sollte im Normalfall nicht so sein). * * @param args * Kommandozeilen-Parameter. */ public static void main(String[] args) { // Datei-Reader initialisieren BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(new File("C:/test.txt"))); } catch(FileNotFoundException e) { // Falls es ein Problem beim Erzeugen des Readers gab ... e.printStackTrace(); System.err.println("Fehler beim Öffnen der Datei!"); return; } // Ab hier kann mit dem Datei-Reader gearbeitet werden /* * Hier werden wir eine Datei einlesen und ihren Inhalt Zeile für Zeile * einlesen und jede Zeile in einer Liste speichern, um mit ihnen später * weiterarbeiten zu können. */ LinkedList<String> rows = new LinkedList<String>(); try { for(String tmp = null; (tmp = reader.readLine()) != null;) { rows.add(tmp); } } catch(IOException e) { // Falls einen Fehler beim Einlesen gab ... e.printStackTrace(); close(reader); return; } // Den Datei-Reader wieder sauber schließen close(reader); /* * Nun haben wir alle Zeilen in einer Liste gespeichert und können auf * diese zugreifen. In diesem Beispiel sind in jeder Zeile einfach nur * Zahlen eingetragen, also werden wir diese auch in solche parsen und * mit ihnen rechnen. */ int sum = 0; for(String row : rows) { int number = 0; try { number = Integer.parseInt(row); } catch(NumberFormatException e) { // Falls eine Zeile nicht nur eine Zahl beinhaltet ... e.printStackTrace(); System.err.println("Fehler: Eine Zeile hat ein fehlerhaftes Format!"); // Das Programm deswegen nicht beenden, einfach die Zeile // überspringen/ignorieren continue; } sum += number; } /* * Und zum Schluss werden jetzt einfach alle Zeilen und das Ergebnis * ausgegeben. */ System.out.println("Alle Zeilen:"); for(String row : rows) { System.out.println(row); } System.out.println("\nDie Summe aller Zahlen: " + sum); } /** * Methode zum Schließen eines Readers. * * @param r * Der zu schlißende Reader. */ private static void close(Reader r) { try { r.close(); } catch(IOException e) { // Falls es einen Fehler beim Schließen gab ... e.printStackTrace(); System.err.println("Fehler beim Schließen des Readers!"); } } }
Ausgabe:25
30
70
1
-100
256
Alle Zeilen:
25
30
70
1
-100
256
Die Summe aller Zahlen: 282Geändert von Akeshihiro (21.11.10 um 08:03 Uhr)
Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
-
Vielen Dank!
Habe mir deinenn code in ein test-*.java kopiert und mit einer eigenen .txt gefüttert.
danach noch code eingefügt, der meiner meinung nach aus der erstellten Liste ("rows") an einer bestimmten stelle den wert abfragt und ausgibt - und es hat geklappt
Du hast mir über eine große schlucht geholfen, nochmal danke dafür - das bringt mich einen großen schritt weiter in richtung der erfolgreichen umsetzung meiner programmidee!
MfG Sidahan
Ähnliche Themen
-
Werte aus XML-Datei Einlesen
Von Henig im Forum .NET DatenverwaltungAntworten: 13Letzter Beitrag: 09.08.10, 14:45 -
Mehrere Werte in DB speichern/ $Query_String ?
Von masterofeye im Forum PHPAntworten: 17Letzter Beitrag: 04.04.07, 22:50 -
mehrere Variablen in Datei speichern und gezielt auslesen
Von Terminator2 im Forum Visual Basic 6.0Antworten: 13Letzter Beitrag: 24.08.06, 16:37 -
Mehrere Werte speichern : SESSION
Von corona im Forum PHPAntworten: 21Letzter Beitrag: 11.10.05, 16:39 -
SAX:bestimmte XML-Werte einlesen & in Variablen speichern
Von yafoe im Forum XML TechnologienAntworten: 1Letzter Beitrag: 18.08.05, 11:13





Zitieren
Login





