Hi zusammen,
habe gerade in einem Buch folgenden Code zum Einlesen von Datei-inhalten gefunden, den ich leider nicht
so ganz verstehe:
Was ich nicht verstehe ist die Bedingung der while-Schleife.
Über die benutzte read-Methode steht in der API-Doku:
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
:###
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
:###