summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog7
-rw-r--r--libjava/gnu/gcj/protocol/file/Connection.java30
2 files changed, 24 insertions, 13 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index c2132ab00f7..903ca65bc7c 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,10 @@
+2002-02-20 Per Bothner <per@bothner.com>
+
+ * gnu/gcj/protocol/file/Connection.java (conect): Open the input
+ and/or output streams immediately here, instead of using File.exists.
+ (inputStream, outputStream): New fields to save open streams.
+ (getInputStream, getOutputStream): Use already-opened streams.
+
2002-02-22 Alexandre Oliva <aoliva@redhat.com>
* acinclude.m4 (LIB_AC_PROG_CXX): Copied from libstdc++-v3.
diff --git a/libjava/gnu/gcj/protocol/file/Connection.java b/libjava/gnu/gcj/protocol/file/Connection.java
index e9ef08f2c30..5510c5d74ea 100644
--- a/libjava/gnu/gcj/protocol/file/Connection.java
+++ b/libjava/gnu/gcj/protocol/file/Connection.java
@@ -33,6 +33,8 @@ class Connection extends URLConnection
private Vector hdrVec = new Vector();
private boolean gotHeaders = false;
private File fileIn;
+ private InputStream inputStream;
+ private OutputStream outputStream;
public Connection(URL url)
{
@@ -47,34 +49,36 @@ class Connection extends URLConnection
return;
// If not connected, then file needs to be openned.
- fileIn = new File(url.getFile());
-
- if (fileIn.exists())
- connected = true;
- else
- throw new FileNotFoundException("No such file or directory");
+ String fname = url.getFile();
+ fileIn = new File(fname);
+ if (doInput)
+ inputStream = new BufferedInputStream(new FileInputStream(fileIn));
+ if (doOutput)
+ outputStream = new BufferedOutputStream(new FileOutputStream(fileIn));
+ connected = true;
}
public InputStream getInputStream() throws IOException
{
+ if (! doInput)
+ throw new ProtocolException("Can't open InputStream if doInput is false");
if (!connected)
connect();
- if (! doInput)
- throw new ProtocolException("Can't open InputStream if doInput is false");
- return new BufferedInputStream(new FileInputStream(fileIn));
+ return inputStream;
}
// Override default method in URLConnection.
public OutputStream getOutputStream() throws IOException
{
- if (!connected)
- connect();
-
if (! doOutput)
throw new
ProtocolException("Can't open OutputStream if doOutput is false");
- return new BufferedOutputStream(new FileOutputStream(fileIn));
+
+ if (!connected)
+ connect();
+
+ return outputStream;
}
// Override default method in URLConnection.