[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems with java.io.BufferedReader
From: |
Mark Wielaard |
Subject: |
Re: Problems with java.io.BufferedReader |
Date: |
Thu, 27 Oct 2005 18:00:11 +0200 |
Hi Thorsten,
I saw nobody ever replied to your message from September.
On Sat, 2005-09-10 at 01:05 +0200, Thorsten Suckow-Homberg wrote:
> right now I have some problems with the java.io.BufferedReader and I hope
> someone can help out.
>
> The docblock says about the method read(char[] buf, int offset, int
> length):
>
> * [...]
> * This method can
> * return before reading the number of chars requested. The actual number
> * of chars read is returned as an int. A -1 is returned to indicate the
> * end of the stream.
> * [...]
>
> Does this mean that it can happen that the buffer supplied by the caller
> doesn't even get filled?
No, our documentation also says:
* This method will block until some data can be read.
> Because I'm operating on some small files and from my understanding there is
> a problem with the
> default buffersize (BufferedReader::DEFAULT_BUFFER_SIZE = 8192).
>
> I'll try to explain:
I'll try to respond to your analysis. But it is easier if you could
supply a self-contained program that doesn't work as you expect with GNU
Classpath. Then we can test the behavior ourselves easily.
> // the buffer-member of bufferedReader gets filled
> // avail is set to -1, since limit equals to 0, and buffer.length-limit
> //equals to buffer.length - ergo, the buffer gets filled with the whole
> // file-contents
> avail = in.read(buffer, limit, buffer.length - limit);
No. avail is set to the number of bytes read from in. If everything is
read in one go then in.read() returns buffer.length. Only the next call
to in.read() would return -1 in that case.
Cheers,
Mark
signature.asc
Description: This is a digitally signed message part
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Problems with java.io.BufferedReader,
Mark Wielaard <=