Einlesen von Dateien- wer kann mir den Code erklären ?

Status
Nicht offen für weitere Antworten.

ich_wills_wissen

Bekanntes Mitglied
Hi zusammen,

habe gerade in einem Buch folgenden Code zum Einlesen von Datei-inhalten gefunden, den ich leider nicht
so ganz verstehe:

Code:
File urlListeDatei = new File("meineDatei.txt");
FileReader fr = new FileReader(urlListeDatei);
			
StringBuffer buffer = new StringBuffer();
			
int bytesRead = 0;
char[] textRead = new char[512];
while((bytesRead = fr.read(textRead)) > 0)
    { 
	buffer.append(textRead, 0, bytesRead);
    }
fr.close();

Was ich nicht verstehe ist die Bedingung der while-Schleife.
Über die benutzte read-Methode steht in der API-Doku:

public int read(char[] cbuf) throws IOException

Read characters into an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.

Parameters:
cbuf - Destination buffer
Returns:
The number of characters read, or -1 if the end of the stream has been reached
Throws:
IOException - If an I/O error occurs

Das Ende des Streams ist nach meinem Verständnis erreicht, wenn alle Daten aus der Datei gelesen wurden.
Das char-Array (textRead) ist aber hier nur 512-byte lang, d.h. bei größeren Dateien läuft das Array über oder wie ? ???:L
Und wenn dann das Ende des Streams erreicht ist, wird alles in den StringBuffer geschrieben.

Wäre nett wenn das jemand für mich in verstänbdliche Worte fassen könnte (also die Zeile "while((bytesRead = fr.read(textRead)) > 0)"). Danke !


Gruß,

ich_wills_wissen
:###
 
S

SlaterB

Gast
fr.read ließt nur soviel ein, wie in das übergebende Array auch reinpasst,
und gibt dann die Anzahl der gelesenen Zeichen zurück,
solange die > 0 ist, schreibt man die gelesenen Zeichen irgendwohin und macht weiter, da ja vielleicht noch mehr zu holen ist,

wenn 0 oder wahrscheinlich -1 erreicht ist, dann ist man fertig, die Schleife wird beendet,

theoretisch könnte man wohl auch bei
while((bytesRead = fr.read(textRead)) < textRead.length)
aufhören,

wenn irgendwann mal nur 400 Zeichen gelesen werden, obwohl 512 reinpassen, dann dürfte danach nichts mehr kommen,
eine weitere Schleife schadet aber auch nicht

Beispiel:
2000 Daten
->
512,
512,
512,
464,
-1 -> Ende
 
G

Guest

Gast
SlaterB hat gesagt.:
wenn 0 oder wahrscheinlich -1 erreicht ist, dann ist man fertig, die Schleife wird beendet,

Denke es müsste eher 0 sein, üblich ist doch immer die Anzahl der tatsächlich gelesenen Bytes zurück zu geben...
 
S

SlaterB

Gast
> Returns:
> The number of characters read, or -1 if the end of the stream has been reached

aber streiten lohnt nicht, wenn keiner Lust hat, zu testen ;)

-------

wichtig ist übrigens, dass das Array normalerweise die hinteren Positionen beibehält, wenn es im letzten Schritt nur noch halb gefüllt wird,
deshalb auch nur die Hälfte davon ausgeben
buffer.append(textRead, 0, bytesRead);
sonst kommt es zu merkwürdigen Wiederholungen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Input/Output Mehrere Csv-Dateien einlesen Java Basics - Anfänger-Themen 2
A Input/Output Dateien einlesen und ausgeben Java Basics - Anfänger-Themen 7
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
H CSV Dateien einlesen, ändern, speichern in Jtable Java Basics - Anfänger-Themen 5
L Input/Output Text Dateien einlesen, bearbeiten und speichern Java Basics - Anfänger-Themen 9
K .bat Dateien starten, Ausgabe einlesen und Befehle übergeben Java Basics - Anfänger-Themen 32
Y Obj-Dateien einlesen Java Basics - Anfänger-Themen 5
S txt dateien einlesen Java Basics - Anfänger-Themen 20
K .txt Dateien in Programm einlesen Java Basics - Anfänger-Themen 18
J Dateien aus Ordner auslesen bzw. einlesen Java Basics - Anfänger-Themen 4
J xmlFileReader - xml dateien einlesen Java Basics - Anfänger-Themen 4
T Mehrere Dateien nacheinander einlesen Java Basics - Anfänger-Themen 3
K Bilder/Dateien aus package einlesen Java Basics - Anfänger-Themen 14
F Alle Dateien eines Verzeichnisses einlesen Java Basics - Anfänger-Themen 3
S CSV dateien einlesen Java Basics - Anfänger-Themen 7
G properties und image Dateien aus jar einlesen Java Basics - Anfänger-Themen 4
S einlesen von dateien mit var. namen Java Basics - Anfänger-Themen 6
R dateien in einem verzeichnis einlesen Java Basics - Anfänger-Themen 3
P pdf Dateien einlesen Java Basics - Anfänger-Themen 2
P Lokale Dateien in Java-Applets einlesen Java Basics - Anfänger-Themen 2
G Klasse zum Einlesen von ini-Dateien Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
S SeriellenPort einlesen Java Basics - Anfänger-Themen 3
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
S JSON einlesen und benutzen Java Basics - Anfänger-Themen 5
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
G JSP Textfeld einlesen Java Basics - Anfänger-Themen 2
M Einlesen > new Leser Java Basics - Anfänger-Themen 5
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S CSV einlesen und mit Komma trennen Java Basics - Anfänger-Themen 12
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
L Datein einlesen Java Basics - Anfänger-Themen 1
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
A Textdatei mit stream einlesen Java Basics - Anfänger-Themen 2
P Datei einlesen und zurückgeben Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
M Einzelzeichen einlesen Java Basics - Anfänger-Themen 2
C (char) Array einlesen Java Basics - Anfänger-Themen 8
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
E Mehrere Eingabezeilen gleichzeitig einlesen Java Basics - Anfänger-Themen 7
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
B CSV einlesen - Parameter a) encoding b) delimiter Java Basics - Anfänger-Themen 7
R Compiler-Fehler Einlesen von Konsolenparameter funtioniert nichtmehr Java Basics - Anfänger-Themen 4
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
H Einlesen Java Basics - Anfänger-Themen 8
H Einlesen von Zahlen Java Basics - Anfänger-Themen 20
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
R txt Einlesen und Verarbeiten Java Basics - Anfänger-Themen 15
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
K Sonderzeichen einlesen Java Basics - Anfänger-Themen 3
L Input/Output XML Datei einlesen (JAXB?) Java Basics - Anfänger-Themen 10
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
I Datei einlesen Java Basics - Anfänger-Themen 11
J Best Practice [Code Verbesserung] TXT einlesen und in Arrayliste speichern Java Basics - Anfänger-Themen 5
A Ungeordnetes Array ordnen, Zahl einlesen und einordnen Java Basics - Anfänger-Themen 23
R Erste Schritte Sicheres einlesen eines Strings Java Basics - Anfänger-Themen 2
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
T Input/Output Einlesen eines .txt Files nur bei gesetztem Breakpoint möglich Java Basics - Anfänger-Themen 1
L RSA Public Key einlesen Java Basics - Anfänger-Themen 0
K Datei aus unbekannten Speicherorten einlesen Java Basics - Anfänger-Themen 1
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben