summaryrefslogtreecommitdiff
path: root/libjava/java/io/BufferedReader.java
diff options
context:
space:
mode:
authormembar <membar@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-30 06:33:43 +0000
committermembar <membar@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-30 06:33:43 +0000
commit63edaa41604c5238084064aa6a6a8d0a6b6d3868 (patch)
treef57a095d33f60f3fd7a5ada51e038edd80f676f8 /libjava/java/io/BufferedReader.java
parent2a82008530d740ae09168ec151271dae99ea0ffb (diff)
downloadgcc-63edaa41604c5238084064aa6a6a8d0a6b6d3868.tar.gz
* java/io/BufferedReader.java (sbuf): New field.
(readLine): Use String.valueOf instead of new String() as per Per Bothner's suggestion. Use instance sbuf field instead of a local StringBuffer instance. * java/io/InputStreamReader.java (read(char[],int,int)): Pass the caller's buffer to refill(). (read(void)): Pass our internal work buffer to refill if our input queue is empty. (refill): Changed return type to int. Use the specified buffer instead of our work buffer as per Bryce McKinlay's suggestion. Return the number of characters read or -1 for EOF. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76927 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/io/BufferedReader.java')
-rw-r--r--libjava/java/io/BufferedReader.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/libjava/java/io/BufferedReader.java b/libjava/java/io/BufferedReader.java
index e29c8dd8844..1bc0dcf7994 100644
--- a/libjava/java/io/BufferedReader.java
+++ b/libjava/java/io/BufferedReader.java
@@ -1,5 +1,5 @@
/* BufferedReader.java
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -89,6 +89,11 @@ public class BufferedReader extends Reader
static final int DEFAULT_BUFFER_SIZE = 8192;
/**
+ * The line buffer for <code>readLine</code>.
+ */
+ private StringBuffer sbuf = null;
+
+ /**
* Create a new <code>BufferedReader</code> that will read from the
* specified subordinate stream with a default buffer size of 8192 chars.
*
@@ -439,7 +444,7 @@ public class BufferedReader extends Reader
int i = lineEnd(limit);
if (i < limit)
{
- String str = new String(buffer, pos, i - pos);
+ String str = String.valueOf(buffer, pos, i - pos);
pos = i + 1;
// If the last char in the buffer is a '\r', we must remember
// to check if the next char to be read after the buffer is refilled
@@ -450,7 +455,10 @@ public class BufferedReader extends Reader
pos++;
return str;
}
- StringBuffer sbuf = new StringBuffer(200);
+ if (sbuf == null)
+ sbuf = new StringBuffer(200);
+ else
+ sbuf.setLength(0);
sbuf.append(buffer, pos, i - pos);
pos = i;
// We only want to return null when no characters were read before