+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.
private Vector hdrVec = new Vector();
private boolean gotHeaders = false;
private File fileIn;
+ private InputStream inputStream;
+ private OutputStream outputStream;
public Connection(URL url)
{
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.