rbrixel
Hallo, ich bins wieder!
Hab grad folgendes Problem, dass ich die erste Zeile aus einer TXT-Datei auslesen will.
Bei meinem ersten Programmierversuch hat er die ganze Datei eingelesen und ausgeben, bei zweiten Versuch macht er zwar was, aber im Output sind nur Leerzeichen.
Hat da wer nen Tipp?
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
try
{
nameEingabedatei = LesePfad + str[i]; // Name der Eingabedatei
eingabedatei = new File(nameEingabedatei); // Eingabedatei öffnen
fr = new FileReader(eingabedatei);
br = new BufferedReader(fr);
int zeilennr = 1; // Gesuchte Zeile (startet bei 0; 1. Zeile = 1!)
int j;
for(j=0; j < zeilennr; j++)
{
br.readLine();
//f.write(br.readLine()); // - Temporär!
System.out.println(nameEingabedatei);
System.out.println(br.readLine());
}
br.close();
}... |
|
mfg,
capsob!
moonsword
mhhh so wie ich mir das vorstelle (soweit ich mich aus meine Zeit erinnere) müsste das irgendwie so funktionieren
| code: |
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:
|
try
{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new
FileInputStream(args[0]);
// Convert our input stream to a
// DataInputStream
DataInputStream in =
new DataInputStream(fstream);
// Continue to read lines while
// there are still some left to read
while (in.available() !=0)
{
// Print file line to screen
System.out.println (in.readLine());
}
in.close();
}
catch (Exception e)
{
System.err.println("File input error");
} |
|
http://www.javacoffeebreak.com/java103/java103.html
das ganze ist ungetestet...hab hier keinen compiler drauf ^^
edit: deins sollte aber auch funktionieren
und zwar, wenn du new File weglässt:
| code: |
1:
|
BufferedReader b = new BufferedReader(new FileReader("Dateinamerl")); |
|
andere frage? gibscht du das aus, speicherst du es? weil da steht nur ein br.readline....d.h. er liests aus und macht nichts damit?
rbrixel
also, der "komplette" code sieht so aus:
| code: |
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:
|
String nameEingabedatei;
try
{
File f1 = new File(LesePfad); // Verzeichnis was gescannt werden soll
String str[] = f1.list(); // Inhalt in ein Array schreiben
//FileWriter f = new FileWriter(new File("c:/DeleteFile_Output.txt")); // - Temporär!
for(int i=0; i<str.length; i++) // Schleife so lange, wie Array
{
if(str[i].endsWith(DateiEndung)) // Nur Datein auflisten mit "Endung"
{
try
{
nameEingabedatei = LesePfad + str[i]; // Name der Eingabedatei
BufferedReader reader = new BufferedReader(
new FileReader(nameEingabedatei));
String zeile = reader.readLine();
zeile = zeile.trim();
System.out.println(zeile);
//f.write(zeile + "\r\n");
reader.close();
}
catch (IOException e)
{
System.out.println ("Fehler");
}
}
}
//f.close(); // - Temporär!
}
catch (Exception e) // Fehler abfangen
{
e.printStackTrace(); // Fehler ausgeben
} |
|
Mal rein von der Funktion her: Er liest den Inhalt eines Ordners. Wenn die Datei auf .TXT endet, soll er die erste Zeile auslesen. Soweit habe ich es jetzt hinbekommen.
ABER: Was ich zB nachher in der Konsole drin stehen habe ist folgendes:
| code: |
1:
2:
3:
4:
5:
|
$$MAIL$$$$FEHLER$$1303
$$MAIL$$$$FEHLER$$1337
$$MAIL$$$$FEHLER$$1441
$$MAIL$$$$FEHLER$$1459
$$MAIL$$$$FEHLER$$1659 |
|
LesePfad ist zB: "c:\\TestDatei\\"
DateiEndung ist zB: "TXT"
-> Jetzt frag ich mich bloß, was der mir für 3 Sonderzeichen vor "$$MAIL..." hängt?
Jemand da eine Idee? Weil in der ersten Zeile ists ok, so sollte mein Output sein. Aber Zeile 2 bis n sind total falsch.
Nur noch zur Info: Das Output besteht sozusagen aus 5 Dateien, wo er immer die erste Zeile gelesen hat.
mfg,
CapSob.