⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connection.java

📁 this gcc-g++-3.3.1.tar.gz is a source file of gcc, you can learn more about gcc through this codes f
💻 JAVA
字号:
/* Copyright (C) 1999, 2002  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.URLConnection;import java.net.JarURLConnection;import java.net.URLStreamHandler;import java.net.MalformedURLException;import java.net.ProtocolException;import java.io.IOException;import java.io.InputStream;import java.io.File;import java.io.FileOutputStream;import java.util.jar.JarFile;import java.util.zip.ZipFile;import java.util.Hashtable;/** * Written using on-line Java Platform 1.2 API Specification. * * @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      {	URLConnection urlconn = jarFileURL.openConnection();	InputStream is = urlconn.getInputStream();	byte[] buf = new byte[4*1024];	File f = File.createTempFile("cache", "jar");	FileOutputStream fos = new FileOutputStream(f);	int len = 0;	while((len = is.read(buf)) != -1)	  fos.write(buf, 0, len);        fos.close();	// Always verify the Manifest, open read only and delete when done.	// XXX ZipFile.OPEN_DELETE not yet implemented.	// jf = new JarFile(f, true, ZipFile.OPEN_READ | ZipFile.OPEN_DELETE);	jarfile = new JarFile(f, true, ZipFile.OPEN_READ);      }    return jarfile;  }}

⌨️ 快捷键说明

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