Datei Zeilenweise Einlesen, Versteckte Zeichen

Bitte aktiviere JavaScript!
Hallo.


Ich lese die Datei zeilenweise ein.

Gehe jede Zeile durch. Ob mit Scanner sc = new Scanner oder mit String contains jede Zeile nach dem Suchwort fragend.

Buffereader, LineNumbereader etc. alles versucht.
Habe es mir auch im Notepad++ angeguckt, nach versteckten Zeichen. Aber keine Auffaelligkeiten drin, die den Unterschied erklaeren wuerden.

Trotzdem kriege ich die Zeilen erst ab:
10-K KLAMATH FIRST BANCORP INC
Der vordere Teil ist komplett weg. Alle Zeilen mit 10-K drin, die ich suche. Die es auch tatsaechlich gibt wenn man sich die Datei anguckt.



Hier mal ein Beispielcode den ich benutzt habe.

import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.Scanner;



Java:
Hier deinen Java-Code einfügen


public class ShoppingCart {

public static void main(String[] args) {
// TODO Auto-generated method stub



FileReader fr = null;
LineNumberReader lnr = null;
String str;
// int i;

try {
// create new reader
fr = new FileReader("C:/mongodb/form.idx");
lnr = new LineNumberReader(fr);



while((str = lnr.readLine())!=null) {

// Java 7 Handbuch
long anzahl = 0;


Scanner sc = new Scanner(str);
String suche = "10-K";

while (sc.hasNext()) {
if (sc.hasNext(suche))
anzahl++;
sc.next();
}
sc.close();

if(anzahl == 1) {
System.out.println(str);

} else { }

}


} catch(Exception e) {
// if any error occurs
e.printStackTrace();
} finally {
// closes the stream and releases system resources
if(fr!=null)
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(lnr!=null)
try {
lnr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Wenn ich Deinen Code ausführe, geht es bei mir mit
Code:
10-K        1 800 FLOWERS COM INC                                         1084869     1999-09-24  edgar/data/1084869/0001047469-99-036782.txt         
10-K        3COM CORP                                                     738076      1999-08-17  edgar/data/738076/0001047469-99-032722.txt
los
Wie rufst Du denn Deinen Code auf?
 
Danke fuer die Antwort.
Hatte oben das Quartal verwechselt.
Aber hier ist das gleiche Problem. Der Anfang ist komplett weg.
Benutze Eclipse unter Windows. Und dann einfach "Run as Java application"

Bei mir faengt es mit folgendem an:
10-K MORRISON MANAGEMENT SPECIALISTS INC 1007507 1999-08-24 edgar/data/1007507/0001007507-99-000027.txt
10-K MORROW SNOWBOARDS INC 866415 1999-07-07 edgar/data/866415/0001047469-99-026491.txt
1

Also liegt es vermutlich an Linux und Windows Unterschieden. Werde es morgen unter Linux testen.
 
Nein, es liegt vermutlich einfach daran, dass das der Puffer des Ausgabefensters von Eclipse nicht groß genug ist, um alle Zeilen zwischenzuspeichern. Ruf Dein Programm mal von der Kommandozeile aus auf und leite die Aufgabe in eine Datei um.

Code:
cd Pfad\zu\Projekt
java -cp . ShoppingCart > ausgabe
Und dann schau Dir mal die Datei ausgabe an. Alternativ: schreib im Programm die Ausgabe in eine Datei.
 
Hallo.

War tatsaechlich das Problem. Habe bei Eclipse den Puffer erweitert, und seitdem wird alles angezeigt.
Schade, dass Eclipse einen nicht warnt.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben