Werte aus einer Datei auslesen

Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Hallo,

ich stelle mir das so vor, ich habe ein Applet mit Textfelder (z.B Absender).
Ausserdem habe ich eine .ini Datei in der ich Informationen in der Form:

Absender: test@test.de
.
.

speichere.

Nun möchte ich aus der test.ini Datei den Absender herausholen, also test@test.de und diese Email Add im Textfeld speichern.

Geht das? Und wenn ja, wie?

Danke.

Gruss
 
S

stev.glasow

Gast
Erstmal hier lesen: http://www.java-forum.org/de/javabuch/html/k100120.html
Sonst können wir uns nicht unterhalten.
Am besten das auch gleich: http://www.java-forum.org/de/javabuch/html/k100125.html


Du könntest den FileReader über einen BufferedReader (befindet sich auch in java.io.) zeilenweise einlese und diese Zeile dann nach dem Doppelpunkt splitten.
Durch das spltten bekommst du dann ja einen String Array, aus dem du dann den Name der Variable(Absender) und den Wert(test@test) 'holen' kannst.
x[0] wäre dann "Absender"
und x[1] wäre dann "test@test"
Und diese Strings haust du dann in eine Textfeld oder was auch immer.
 
L

Louis2

Gast
Würde so etwas gehen:

Code:
import java.io.*;
 
    public class Lesen
    {
      public static void main(String[] args)
      {
        FileReader lesen;
        int nummer;
	String[] bereiche;
	String TextfeldEmail;
	String TextfeldHost;
	String speichern;
    
        try {
          lesen = new FileReader("test.ini");
          while ((nummer = lesen.read()) != -1) {
            bereiche = (char)nummer(":",0);
	  for (int i = 0; i < bereiche.length; i++) 
	  speichern = CodeParts[i];	
          }
	TextfeldEmail = CodeParts[1]
	TextfeldHost = CodeParts[3]
        lesen.close();
        } catch (IOException e) {
          System.out.println("Fehler beim Lesen der Datei");
        }
      }
    }

Wenn die Datei so aussehen würde:

Email: test@test.de
Host: 10.40.60.32

??
 
S

stev.glasow

Gast
Ne so richtig nicht, aber fast. Mach mal nen BufferdReader um den FileReader .
und dann immer String line = myBufferdReader.readLine(); nicht read()
(wenn das Datei ende erreicht ist gib die Methode null zurück.)
Und bei jedem Druchgang: String[] tmp = line.split(":");
Dann wäre tmp im ersten Durchgang {"Email", " test@test.de"}
und im Zweiten Durch gang {"Host", " 10.40.60.32"}
 
L

Louis2

Gast
Komme ich der Sache näher?

Code:
import java.io.*; 

    public class Test 
    { 
      public static void main(String[] args) 
      { 
        String TextfeldEmail; 
        String TextfeldHost; 
        BufferedReader b; 
        String line; 
        String[] tmp;
    
        try 
        { 
            b = new BufferedReader(new FileReader("test.ini")); 
            while ((line = b.readLine()) != null) 
            { 
                tmp = line.split(":");  
            } 
                TextfeldEmail = tmp[1]; 
                TextfeldHost = tmp[3]; 
                b.close(); 
        } 
        catch (IOException e) 
        { 
            System.out.println("Fehler beim Lesen der Datei"); 
        } 
      } 
    }

1. Frage: Kann man das so machen mit "TextfeldEmail = tmp[1]; "
Weil irgendwie meckert er beim Compilieren, dass tmp nicht initialisiert sei, was ja falsch ist... s.o
2. Frage: Mit "TextfeldEmail = tmp[1]; " wird aber dann im Textfeld die mail Adresse erscheinen, also hingeschrieben richtig? (Dumme Frage, aber ich bin mir unsicher, ob es nur zugewiesen wird oder der Text auch erscheinen wird dort)
3. Frage: Kann man eine feste Anzahl an Zeichen für TextFelder bestimmen, wenn ja wie?
4. Frage: Wird es sonst so klappen?

Gruss
 

Wildcard

Top Contributor
Louis2 hat gesagt.:
1. Frage: Kann man das so machen mit "TextfeldEmail = tmp[1]; "
Weil irgendwie meckert er beim Compilieren, dass tmp nicht initialisiert sei, was ja falsch ist... s.o
Angenommen deine while-Schleife wird nie betreten, dann ist tmp eben NICHT initialisiert.
2. Frage: Mit "TextfeldEmail = tmp[1]; " wird aber dann im Textfeld die mail Adresse erscheinen, also hingeschrieben richtig? (Dumme Frage, aber ich bin mir unsicher, ob es nur zugewiesen wird oder der Text auch erscheinen wird dort)
Welches Textfeld denn? Das ist doch nur ein String ???:L
Variablen werden klein geschrieben!
3. Frage: Kann man eine feste Anzahl an Zeichen für TextFelder bestimmen, wenn ja wie?
Ohne zu wissen ob du jetzt von einem String oder einem Textfeld redest sag ich da mal nichts zu...
 
L

Louis2

Gast
@Wildcard:

Zu Frage 1: Und wie kann ich es richtig initialisieren?

Zu Frage 3: Ich meine, ein Textfeld kann eine bestimmte Grösse haben, sagen wir 20. Es heißt aber noch lange nicht, dass max. 20 Zeichen rein passen. Jetzt möchte ich z.B die Anzahl der Zeichen die eingegeben werden können auf 10 limitieren, mehr kann nicht eingegeben werden. Wie mache ist das?


@stevg: Meinst du das Prog. läuft so?

Danke&Gruss
 

Wildcard

Top Contributor
Code:
String[] tmp = null;
zu 3) Nochmal: String oder TextField???
ich seh da nämlcih kein TextField!
 
L

Louis2

Gast
@Wildcard: Es hat mit diesem Code nix zu tun, ist eine generelle Frage für ein Textfeld in einem Applet (Swing). :wink: Es gibt zwar JFormattedTextField, aber kann ich damit auch festlegen wieviele Zeichen "benutzt" werden dürfen?
 

ExElNeT

Mitglied
Ich wuerde dir zum speichern und laden von Dokumenten XML und DOM empfehlen. Wenn dann richtig! ;) Ansonsten binär speichern mit Serialize ;)

mfg
 
L

Louis2

Gast
Also mein Code sieht so aus:

Code:
import java.io.*; 

    public class Test 
    { 
      public static void main(String[] args) 
      { 
        String TextfeldEmail; 
        String TextfeldHost; 
        BufferedReader b; 
        String line; 
        String[] tmp = null;
        
        try 
        { 
            File Data = new File("C:/Data.ini"); 
            b = new BufferedReader(new InputStreamReader(new FileInputStream(Data)));  
            while ((line = b.readLine()) != null) 
            { 
                tmp = line.split(":");  
                System.out.println(line);
            } 
                TextfeldEmail = tmp[1]; 
                TextfeldHost = tmp[3]; 
                b.close(); 
        } 
        catch (IOException e) 
        { 
            System.out.println("Fehler beim Lesen der Datei"); 
        } 
      } 
    }

Wenn System.out.println(line); in der while Schleife, dann gibt das Programm:
EmailFrom: test@test.com
Host: 11.11.11.11
java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:24)
Exception in thread "main"

Wenn System.out.println(tmp); in der while Schleife, dann gibt das Programm:
[Ljava.lang.String;@1cde100
[Ljava.lang.String;@16f0472
java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:23)
Exception in thread "main"

Wenn System.out.println(tmp[1]); in der while Schleife, dann gibt das Programm:
test@test.com
11.11.11.11
java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:23)
Exception in thread "main"

Also eigentlich sollte er nur test@test.com rausgeben oder?


1. Wo ist noch der Fehler, der sollte doch nach dem ":" abschneiden und trennen und an verschiedene ArrayPositonen speichern oder?
2. Ich finde immer noch keine Lösung wie ich leicht die Anzahl an Zeichen in einem Textfeld (Array) festlegen kann.

Danke.
 

Wildcard

Top Contributor
Code:
 System.out.println(tmp)
Du kannst nicht einfach ein Array ausgeben, du musst schon die Felder ausgeben:
Code:
 System.out.println(tmp[0]);
usw.
Die ArrayOutOfBoundsExceptions ist dir klar, oder?
Du greifst auf ein Array-Feld zu das nicht existiert.
 
L

Louis2

Gast
@Wildcard:

Warum gibt er mir bei
Code:
System.out.println(tmp[0]);

EmailFrom
Host

aus? Sollte nicht nur EmailFrom ausgegeben werde, tmp[1] wäre test@test.com, tmp[2] Host usw...??

D.h bevor ich mein Array dem Textfeld zuweise, muss ich ihn speichern, in einer Variable während der while-Schleife? Eine Variable die alle Arrays speichert oder wie meinst du das? (Anhand Beispiel)

Danke.
 

Wildcard

Top Contributor
Code:
           while ((line = b.readLine()) != null)
            {
                tmp = line.split(":"); 
                System.out.println(line);
            }
Damit dir mal klar wird was du hier eigentlich machst:
Du liest eine Datei zeilenweise aus, und splittest die Zeile dann beim ':'
Wenn deine Datei so aussieht:
EmailFrom: test@test.com
Host: 11.11.11.11
hat tmp nach dem ersten Schleifendurchlauf also folgenden Inhalt:
tmp[0]=EmailFrom
tmp[1]= test@test.com

dann kommt der nächst Schleifendurchlauf und du weist tmp ein neues Array zu.
Neuer Inhalt
tmp[0]= Host
tmp[1]= 11.11.11.11

warum willst du dann so hartnäckig auf tmp[3] zugreifen wenn's das niemals geben wird?
 
L

Louis2

Gast
Ok, das habe ich jetzt verstanden.

Mein Problem ist halt folgendes: ich habe ja mehrere Textfelder im Applet. Sagen wir 2 wie in meinem Beispiel.
Das erste Textfeld heißt TextfeldEmail, dort muss tmp[1] von ersten Lauf gespeichert werden.
Das zweite Textfeld heißt TextfeldHost, dort muss tmp[1] von zweiten Lauf gespeichert werden.

So wie kriege ich das hin? Eine for-Schleife in der while-Schleife?

Code:
while ((line = b.readLine()) != null) 
{ 
    tmp = line.split(":");  
    
    for (int i=0; i<=tmp.length; i++)
        save = tmp[i];
                
} 
b.close();

Und nun wie weise ich meine Textfelder den String zu?

Sorry.
 
L

Louis2

Gast
Hmmm ???:L

Wenn ich
Code:
while ((line = b.readLine()) != null) 
{ 
    tmp = line.split(":");  
    System.out.println("AusgabeEmail= " + tmp[1] + "   ");
    //AusgabeEmail=tmp[1];
    System.out.println("AusgabeHost= " + tmp[1] + "   ");
    //AusgabeHost=tmp[1];
} 
b.close();

eingebe, (das sop dient nur um zu sehen was er normal in AusgabeEmail und AusgabeHost speichern würde) erscheint
AusgabeEmail= test@test.com
AusgabeHost= test@test.com
AusgabeEmail= 11.11.11.11
AusgabeHost= 11.11.11.11

Eigentlich sollte aber bei AusgabeEmail nur test@test.com und bei AusgabeHost nur 11.11.11.11 erscheinen.
Aber das Prog. macht es doppelt weil es die ganze Schleife durchgeht.

Versteht man wo mein Problem ist? :)

Wenn in der Textdatei es 2 Zeilen gibt:

Email= test@test.com
Host= 11.11.11.11

dann soll das Prog an Stelle AusgabeEmail nur die Email speichern und nicht die Host Nummer und in zweiten Durchlauf an Stelle AusgabeHost nur die Host Nummer.

Die Schleife geht doch immer alles durch, wie man kann das festsetzen? ???:L
 
L

Louis2

Gast
Wildcard hat gesagt.:
Du brauchst einen counter um mitzukriegen in welchem durchlauf du dich befindest

Also ich habe es mit IF Anweisungen usw gemacht:

Code:
while ((line = b.readLine()) != null) 
            { 
                tmp = line.split(":");  
                if (counter==0)
                System.out.println("AusgabeEmail= " + tmp[1] + "   ");
                else
                    if (counter==1)
                    System.out.println("AusgabeEmail= " + tmp[1] + "   ");
                    else
                    System.out.println("AusgabeHost= " + tmp[1] + "   ");
                    
                counter++;
            } 
                b.close();

Fakt ist, jetzt klappt es... so jetzt mal das ganze im Applet probieren :wink:

Danke.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K need help ; Werte aus einer Datei auslesen Allgemeine Java-Themen 4
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
T Amplitude-Werte aus einer Musikdatei "auslesen" Allgemeine Java-Themen 2
M Felder + Werte einer Klasse auslesen Allgemeine Java-Themen 6
C In DefaultTableModel nachträglich Werte einfügen Allgemeine Java-Themen 2
rosima26 Unterschiedliche Werte bei return/print Allgemeine Java-Themen 12
berserkerdq2 Kann man in IJVM maximal 3 Werte im Stack haben? Allgemeine Java-Themen 3
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
Henrithebegiinerofjava Erste Schritte Werte in Eingabefelder einlesen und wiederholen lassen. Allgemeine Java-Themen 3
I Java: public final Werte: Gute oder schlechte Praxis? Allgemeine Java-Themen 6
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
J Swing UIManager Werte Allgemeine Java-Themen 6
4 Java 2 ArrayListen Werte herauslesen/übernehmen Allgemeine Java-Themen 4
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
KeVoZ_ int Werte in einen String fassen Allgemeine Java-Themen 4
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Übergebene Werte in Gerätedatei schreiben Allgemeine Java-Themen 2
M Exceltabelle in Java erstellen und Werte einlesen Allgemeine Java-Themen 32
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
R Int werte vergleichen und Anzahl Paare ausgeben Allgemeine Java-Themen 4
O Klassen Programm in Klassen unterteilt, werte werden nicht mehr übernommen Allgemeine Java-Themen 3
R kann man irgendwie mit Arrays mit Eingabefenstern und Schleifen Werte abklappern? Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
R Variablen per HSSF geheime Werte von JAVA an EXCEL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
C Datentypen Enum-Werte Bestanteil von anderem Enum Allgemeine Java-Themen 8
Q GregorianCalendar Methode add liefert komische Werte Allgemeine Java-Themen 3
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
A String Array Werte in neues String Array übernehmen Allgemeine Java-Themen 5
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
R Zusammenhängende Werte in 2-dim. Array finden und zählen Allgemeine Java-Themen 3
S Sinnvolles skalieren von Werte-Set? Allgemeine Java-Themen 2
S Keytool: mögliche Werte für Parameter Allgemeine Java-Themen 4
P Werte in Array zählen und Summe der einzelnen Teile ausgeben Allgemeine Java-Themen 10
L Veränderbare Werte zusammenfassen Allgemeine Java-Themen 18
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
J JSONObject Reihenfolge der Werte? Allgemeine Java-Themen 4
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
c_sidi90 Werte an bestimmten Position aus PDF in DB sichern Allgemeine Java-Themen 2
C Vergleich von Enums gibt inkorrekte Werte Allgemeine Java-Themen 6
T Array Sortieren (null Werte ans Ende) Allgemeine Java-Themen 2
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
C aus einem String einzelne Hex Werte lesen Allgemeine Java-Themen 7
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
M rxtx OutputStream sendet falsche werte Allgemeine Java-Themen 3
J Hex Werte in Bitmap Raster darstellen Allgemeine Java-Themen 16
E Werte übergabe Allgemeine Java-Themen 2
E Werte in andere Klasse übernehmen Allgemeine Java-Themen 8
S Bytes oder Hex-Werte zu Assembler Code? Allgemeine Java-Themen 6
D Mehrere String-Werte in eine Tabellen-Zelle schreiben Allgemeine Java-Themen 8
P Methoden und Werte Allgemeine Java-Themen 17
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
N unzählige Werte am besten speichern(?) Allgemeine Java-Themen 2
D Spielerwechsel über boolsche Werte läuft inkorrekt Allgemeine Java-Themen 6
MonsterBit 2 Werte aus 2 Array vergleichen Allgemeine Java-Themen 10
T Apache POI Export EXCEL - [Zahlen-Werte] Allgemeine Java-Themen 1
S Doppelte Werte in Listen,Vectoren etc suchen Allgemeine Java-Themen 2
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
H Prüfen, ob doppete Werte in int-Array vorhanden sind Allgemeine Java-Themen 16
K Datenhaltungsklasse für wenige Werte? Allgemeine Java-Themen 4
T JProgressbar ändert werte nicht Allgemeine Java-Themen 28
C Eingegebene Werte werden nicht gezeichnet Allgemeine Java-Themen 2
chik 2 return werte für Greedy-Algorithmus (gelöst) Allgemeine Java-Themen 3
hdi dynamische return-Werte Allgemeine Java-Themen 15
R Double Werte aus byte[] auslesen Allgemeine Java-Themen 5
T Wurfweitenberechnung: X-Werte bei extremen Werten falsch. Allgemeine Java-Themen 15
G Excel Werte / Zellen formatieren Allgemeine Java-Themen 5
G Werte bei Rekursion viel höher als erwartet Allgemeine Java-Themen 3
P Bedeutung der Process.exitValue() Werte? Allgemeine Java-Themen 3
C String to hex und hex-Werte löschen Allgemeine Java-Themen 2
D Suche sowas wie Map nur für mehrere Werte Allgemeine Java-Themen 13
M Werte im Browser aktualisieren Allgemeine Java-Themen 2
L Werte in externer Datei speichern und wieder auslesen? Allgemeine Java-Themen 8
MQue Werte in eine html- Datei schreiben Allgemeine Java-Themen 17
D werte in excelltabelle schreiben Allgemeine Java-Themen 5
N Werte Von C++ nach Java über den Stream möglich? Allgemeine Java-Themen 8
S JFreeChart LineChart Punkte über NULL Werte hinweg verbinden Allgemeine Java-Themen 5
G Werte zusammenfassen! Allgemeine Java-Themen 3
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
W PrintWriter (PrintStream) sendet falsche Werte Allgemeine Java-Themen 18
Y Methode soll 2 Werte zurückliefern Allgemeine Java-Themen 7
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
D Werte aus drei Auswahllisten Allgemeine Java-Themen 5
P JSlider nur bestimmte werte geben Allgemeine Java-Themen 2
P JavaCode verschlüsseln / verschlüsselte Werte Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben