从InputStream创建JarFile

时间:2018-04-03 16:42:11

标签: java jar download inputstream

我想从Internet读取一个JarFile到ram并将其作为JarFile处理。 有没有办法将JarInputStream转换为JarFile或将byte []转换为JarFile,而不先保存它?

plid是55283

public static void update() throws Exception {

    HttpURLConnection conn = (HttpURLConnection) new URL("https://api.spiget.org/v2/resources/" + plid).openConnection();
    JSONObject info = (JSONObject) new JSONParser().parse(new InputStreamReader(conn.getInputStream()));
    long dwlid = Long.parseLong( ((JSONObject) ((JSONArray) info.get("versions")).get(0)).get("id").toString() );
    String dwl = String.format("https://api.spiget.org/v2/resources/{0}/versions/{1}/download", plid, dwlid);

    conn = (HttpURLConnection) new URL(dwl).openConnection();
    conn.setRequestProperty("user-agent", Core.useragent);
    conn = f(conn);

    InputStream in = conn.getInputStream();
    JarInputStream jis = new JarInputStream(in);
    JarFile jf = new Jar


}

1 个答案:

答案 0 :(得分:0)

不幸的是,java.util.jar.JarFilejava.util.zip.ZipFile只能在File上运行。

此外,实际读取文件的部分是以本机实现的。因此,从我的角度来看,重写类并将实现重定向到byte[]或任何其他类型的缓冲区似乎都不可行。