FileInputStream sehr langsam

Status
Nicht offen für weitere Antworten.

chrissi84

Mitglied
Hi!

Ich hab nen kleines Problem mit dem FileInputStream.
Ich möchte eine datei einlesen, die nur aus int und double Werten bestehen, nach jeder Zahl ist ein Leerzeichen.
Zur Zeit lese ich noch ein, indem ich die ganze Datei in einen String schreibe, dann daraus nen StringTokenizer mache und dann die Zahlen einzeln auslese.
Hier der Code:

Code:
     FileInputStream file=new FileInputStream("D:\\workspace\\ich.txt");

   while(file.available()!=0){
		int c=file.read();
		char e=(char) c;
		str+=e;
	}
	
	}
	catch(IOException e){
		
	}
StringTokenizer token=new StringTokenizer(str);
.
.
.

Bei langen Dateien dauert das sehr lange, ich denke es liegt daran, dass ich die datei erst in einen String schreibe.
Geht es auch ohne String?

Danke für die Hilfe
 

pappenpeter

Mitglied
Leg mal den FileInputStream in einen BufferedInputStream..

Code:
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\workspace\\ich.txt"));

Mußt dir dann nur noch überlegen wie du das casten der Werte machst..
Vieleicht einfach versuchen in int zu casten und eine NumberFormatException abfangen. Dann das ganze in Double casten..

Auf jeden Fal sollte der Buffer das ganze beschleunigen..

edit:

Umgehen kannst du das Auslesen als Strng wenn du vieleicht noch einen DataInputStream in die Streams schachtelst.. Also zwischen File und BufferInputStream..

Damit kannst du direkt readint() oder readFloat machen. Aber ich glaube das geht nur wenn du die Datei auch mit DataOutpurStream geschrieben hast...
Dann kannst du das auf jeden fall mit den Exceptions machen.. Indem du eben versuchst ein Int zu lesen und wenn das nicht klappt bekommst du eine Exception. Die fängst du ab und holst dir dann eben die gleiche pos. als Double..

Guck mal in der API unter java.io da gibts ganz viel dazu..
 

Sky

Top Contributor
Neben dem Tipp mit dem BufferedInputStream, kann ich Dir noch sagen, dass dein Prog bei langen Dateien wirklich wegen deinem String so langsam ist.
Die Zeile
Code:
str+=e
ist sehr Performance-Intensiv. Besser nimm einen Stringbuffer, füge die einzelnen Daten mit 'append' hinzu und dann:
Code:
StringTokenizer token=new StringTokenizer(meinStringBuffer);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B OutputStream in FileInputStream? Java Basics - Anfänger-Themen 9
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B FileInputStream entpacken und Zeile für Zeile entpacken Java Basics - Anfänger-Themen 1
V FileInputStream - read() Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
N FileInputstream und BinaryStream Java Basics - Anfänger-Themen 3
V FileInputStream auf ein swt.Image Java Basics - Anfänger-Themen 6
R FileInputStream findet Datei nicht Java Basics - Anfänger-Themen 5
C FileInputStream read() Overflow Problem Java Basics - Anfänger-Themen 6
C Datentypen Rückgabewert von "new FileInputStream" Java Basics - Anfänger-Themen 4
K FileInputStream in Jar Java Basics - Anfänger-Themen 5
megachucky FileInputStream findet nur absoluten Pfad, keinen Relativen ?! Java Basics - Anfänger-Themen 7
B FileInputStream schliessen: unreported Exception...must be caught Java Basics - Anfänger-Themen 6
W new FileInputStream() blockiert bei fifo (named pipe) Java Basics - Anfänger-Themen 2
G FileInputStream--> Zahlen aus Datei lesen Java Basics - Anfänger-Themen 7
G FileInputStream manipulieren Java Basics - Anfänger-Themen 6
B FileinputStream und BufferedInputStream Java Basics - Anfänger-Themen 12
P Fileinputstream to image? Java Basics - Anfänger-Themen 3
I FileInputStream global deklarieren Java Basics - Anfänger-Themen 2
G relativer Pfad bei FileInputStream Java Basics - Anfänger-Themen 11
T Unterschiedliche Werte beim FileInputStream Lesen Java Basics - Anfänger-Themen 2
F FileInputStream(File file) funzt net Java Basics - Anfänger-Themen 2
R FileInputStream.read() != FileReader.read(). Pls Help Java Basics - Anfänger-Themen 5
Z FileInputStream bricht ab Java Basics - Anfänger-Themen 6
frau-u Probleme mit richtiger Verwendung von FileInputStream Java Basics - Anfänger-Themen 2
G FileInputStream Java Basics - Anfänger-Themen 6
W aus ObjectInputStream muß FileInputStream werden Java Basics - Anfänger-Themen 12
C FileInputStream und FileOutputStream Java Basics - Anfänger-Themen 4
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
X Sehr schnelle agile Entwicklung Java Basics - Anfänger-Themen 1
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
P Erste Schritte Console - Sehr komische Ausgabe! Java Basics - Anfänger-Themen 3
B sehr lange Srings in File schreiben Java Basics - Anfänger-Themen 4
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
M Suche Hilfe bei sehr kleinen Quelltexten Java Basics - Anfänger-Themen 2
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
C Einlesen in Array von Textdatei sehr langsam Java Basics - Anfänger-Themen 7
M sehr großes Byte Array Java Basics - Anfänger-Themen 3
R OutOfmemory Exception bei sehr großer Liste (Tomcat Webservice) Java Basics - Anfänger-Themen 4
H Sehr einfache Java-Programme Java Basics - Anfänger-Themen 24
Luk10 OOP Sehr allgemeine Schnittstelle Java Basics - Anfänger-Themen 19
S Input/Output Sehr langen String in Datei schreiben Java Basics - Anfänger-Themen 8
R ArrayList sehr viel schneller als Array? Java Basics - Anfänger-Themen 2
R Sehr einfache möglichkeit ArrayList oder Array zu initialisieren? Java Basics - Anfänger-Themen 8
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
B ABspeichern eines sehr grossen negativen Werts Java Basics - Anfänger-Themen 6
Beckenbauer Eine anstehende (sehr simple) Applikation in UML darstellen (Klassendiagramm) Java Basics - Anfänger-Themen 20
N Name zu sehr ähnlich??? Java Basics - Anfänger-Themen 12
E Reguläre Ausdrücke mit sehr variablen Eigenschaften Java Basics - Anfänger-Themen 2
T Generic vom Generic: Zu sehr verschachtelt? Java Basics - Anfänger-Themen 6
Antoras Datei laden mit BufferedReader sehr langsam Java Basics - Anfänger-Themen 7
F Programm sehr langsam. Windows 7? Java Basics - Anfänger-Themen 23
S Eclipse .metadata ordner ist sehr gross! Java Basics - Anfänger-Themen 1
G Socket erstellen dauert sehr lange. Java Basics - Anfänger-Themen 4
D Sehr großer String lässt sich nicht bearbeiten Java Basics - Anfänger-Themen 7
G Verzeichnis auslesen mit sehr sehr vielen Bildern Java Basics - Anfänger-Themen 6
E Methode sehr langsam und funktioniert teilweise nicht Java Basics - Anfänger-Themen 3
S JFileChooser öffnet Unterverzeichnisse sehr langsam Java Basics - Anfänger-Themen 2
G Sehr eigenartige Datumsprobleme. Java Basics - Anfänger-Themen 2
I Schulprojekt !sehr wichtig! Java Basics - Anfänger-Themen 6
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
G g.drawLine arbeitet sehr ungenau. Java Basics - Anfänger-Themen 4
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
T Erste Schritte (SEHR mühsam); Grafiktest Java Basics - Anfänger-Themen 5
F Java Applikation ProjectX startet sehr langsam Java Basics - Anfänger-Themen 3
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
M Quicksort Laufzeit langsam Java Basics - Anfänger-Themen 5
M Quicksort Laufzeit langsam Java Basics - Anfänger-Themen 0
J Interface Einlesen von Bildern mithilfe von URL zu langsam Java Basics - Anfänger-Themen 5
L mehrdimensionale arrays ich verzweifle so langsam... Java Basics - Anfänger-Themen 9
M Simpler Algorithmus läuft extrem langsam. Java Basics - Anfänger-Themen 3
E Mausklick Erkennung langsam? Java Basics - Anfänger-Themen 2
W Eclipse auf Linux langsam und stürzt teilweise ab Java Basics - Anfänger-Themen 2
J Bei Hinzufügen von JButton Programm langsam Java Basics - Anfänger-Themen 3
C Mehrdimensionale Arrays in Java langsam? Java Basics - Anfänger-Themen 8
F Ist lesen Text von einem Zip File besonders langsam??? Java Basics - Anfänger-Themen 4
A .setEnabled(false) zu langsam? Java Basics - Anfänger-Themen 17
D JButton oder ImageIcon klickt "langsam" Java Basics - Anfänger-Themen 5
M mouseMotionListener zu langsam Java Basics - Anfänger-Themen 2
K Bilder "langsam" laden Java Basics - Anfänger-Themen 4
D Keylistener zu langsam Java Basics - Anfänger-Themen 7
hdi FileReader / BufferedReader langsam? Java Basics - Anfänger-Themen 3
G ArrayList bei großen Zahlen langsam? Java Basics - Anfänger-Themen 10
A Maus positionserkennung zu langsam Java Basics - Anfänger-Themen 4
C Java ist langsam Java Basics - Anfänger-Themen 4
G Ein Image langsam einblenden und nach 5 Sekunden ausblenden? Java Basics - Anfänger-Themen 10
D Warum läuft dieses Programm so langsam? Java Basics - Anfänger-Themen 5
G Verzweifle langsam beim Javalernen Java Basics - Anfänger-Themen 8
G jar-File startet zu langsam? Java Basics - Anfänger-Themen 9
M Warum so höllisch langsam? Java Basics - Anfänger-Themen 5
S die java machine läuft viel zuuuu langsam, woher kommt das?? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben