connection.java

来自「gcc3.2.1源代码」· Java 代码 · 共 87 行

JAVA
87
字号
/* Copyright (C) 1999  Free Software Foundation   This file is part of libgcj.This software is copyrighted work licensed under the terms of theLibgcj License.  Please consult the file "LIBGCJ_LICENSE" fordetails.  */package gnu.gcj.protocol.jar;import java.net.URL;import java.net.JarURLConnection;import java.net.URLStreamHandler;import java.net.MalformedURLException;import java.net.ProtocolException;import java.io.IOException;import java.util.jar.JarFile;import java.util.Hashtable;/** * Written using on-line Java Platform 1.2 API Specification. * Status: Needs a way to download jar files and store them in the local file * system.  I don't know how to do that in a portable way.  For now, it can only handle  * connections to a jar:file: url's. * * @author Kresten Krab Thorup <krab@gnu.org> * @date Aug 10, 1999. */public class Connection extends JarURLConnection {  static Hashtable file_cache = new Hashtable();  private JarFile jarfile;  public Connection(URL url)    throws MalformedURLException  {    super(url);  }  public synchronized JarFile getJarFile() throws java.io.IOException  {    if (!connected)      connect();    if (! doInput)      throw new ProtocolException("Can't open JarFile if doInput is false");    if (jarfile != null)      return jarfile;    URL jarFileURL = getJarFileURL ();    if (jarFileURL.getProtocol ().equals ("file")	&& jarFileURL.getHost ().equals (""))      {	if (getUseCaches())	  {	    jarfile = (JarFile) file_cache.get(jarFileURL);	    if (jarfile == null)	      {		jarfile = new JarFile (jarFileURL.getFile ());		file_cache.put (jarFileURL, jarfile);	      }	  }	else	  jarfile = new JarFile (jarFileURL.getFile ());      }    else      {	/*	  FIXME: Here we need to download and cache the jar	  file in the local file system!  Stupid design.  Why	  can't we just create a JarFile from a bag of bytes?	*/	throw new java.io.IOException("cannot create jar file from " +				      jarFileURL);      }    return jarfile;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?