2003-12-28 Guilhem Lavaux <guilhem@kaffe.org>
* java/io/LineNumberReader.java (mark): Improved error checking. (read): Likewise. (skip): Likewise. Skip is now really eating the specified number of characters. * java/io/CharArrayReader.java (read): It should throw IndexOutOfBoundsException and not ArrayIndexOutOfBoundsException (see mauve). * java/io/BufferedReader.java (readLine): Make readLine() really block until either EOF is reached or a true error happens. From-SVN: r75180
This commit is contained in:
parent
07dc48e014
commit
920be544c9
4 changed files with 42 additions and 8 deletions
|
@ -155,6 +155,9 @@ public class LineNumberReader extends BufferedReader
|
|||
*/
|
||||
public void mark(int readLimit) throws IOException
|
||||
{
|
||||
if (readLimit < 0)
|
||||
throw new IllegalArgumentException("Read-ahead limit is negative");
|
||||
|
||||
synchronized (lock)
|
||||
{
|
||||
// This is basically the same as BufferedReader.mark.
|
||||
|
@ -265,9 +268,17 @@ public class LineNumberReader extends BufferedReader
|
|||
* @return The actual number of chars read, or -1 if end of stream
|
||||
*
|
||||
* @exception IOException If an error occurs.
|
||||
* @exception NullPointerException If buf is null (in any case).
|
||||
* @exception IndexOutOfBoundsException If buffer parameters (offset and
|
||||
* count) lies outside of the buffer capacity.
|
||||
*/
|
||||
public int read(char[] buf, int offset, int count) throws IOException
|
||||
{
|
||||
if (buf == null)
|
||||
throw new NullPointerException();
|
||||
if (offset + count > buf.length || offset < 0)
|
||||
throw new IndexOutOfBoundsException();
|
||||
|
||||
if (count <= 0)
|
||||
{
|
||||
if (count < 0)
|
||||
|
@ -376,14 +387,17 @@ public class LineNumberReader extends BufferedReader
|
|||
*/
|
||||
public long skip (long count) throws IOException
|
||||
{
|
||||
if (count <= 0)
|
||||
if (count < 0)
|
||||
throw new IllegalArgumentException("skip() value is negative");
|
||||
if (count == 0)
|
||||
return 0;
|
||||
|
||||
int skipped;
|
||||
|
||||
char[] buf = new char[1];
|
||||
|
||||
for (skipped = 0; skipped < count; skipped++)
|
||||
{
|
||||
int ch = read();
|
||||
int ch = read(buf, 0, 1);
|
||||
|
||||
if (ch < 0)
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue