【问题标题】:Extract a remote zip file and unzip it to a hdfs in java提取远程zip文件并将其解压缩到java中的hdfs
【发布时间】:2017-09-09 03:08:29
【问题描述】:

我正在做的只是解压缩并上传一个 zip 文件,该文件可以从网站下载到 hdfs。 这是代码:

String src="http://corpus.byu.edu/wikitext-samples/text.zip";
String dst = "hdfs://cshadoop1/user/hxy162130/assignment1";
InputStream a = new URL(src).openStream();
System.out.println(a == null);
ZipInputStream in = new ZipInputStream(a);
System.out.println(in == null);
ZipEntry zE = in.getNextEntry();        
System.out.println(zE == null);

如您所见,我使用 openStream 方法将 url 更改为 inputstream,然后将 inputstream 作为 ZipInputStream 的参数。最后我从 zipinputStream 中获取了一个条目。 但问题是 getNextEntry 方法返回一个空值,这意味着我的代码的输出是 false,false,true。我就是找不到问题出在哪里。

【问题讨论】:

    标签: java hadoop zipinputstream


    【解决方案1】:

    http://corpus.byu.edu/wikitext-samples/text.zip 的HTTP 请求导致301 Moved Permanently 提供新的Location: https://corpus.byu.edu/wikitext-samples/text.zip。所以没有可用的ZIP 资源使用这个URL

    要遵循重定向,您可以这样做:

    import java.net.URL;
    import java.net.URLConnection;
    import java.io.InputStream;
    import java.util.zip.*;
    
    
    class ReadZipInputStream {
    
     public static void main(String[] args) throws Exception {
    
      String src="http://corpus.byu.edu/wikitext-samples/text.zip";
      //301 Moved Permanently: Location:https://corpus.byu.edu/wikitext-samples/text.zip
    
      URL url = new URL(src);
      URLConnection connection = url.openConnection();
      String redirect = connection.getHeaderField("Location");
      if (redirect != null){
       connection = new URL(redirect).openConnection();
      }
    
      InputStream a = connection.getInputStream();
      System.out.println(a);
    
      ZipInputStream in = new ZipInputStream(a);
      System.out.println(in);
    
      ZipEntry zE = in.getNextEntry();        
      System.out.println(zE);
    
     }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多