FISHY__ 2019-12-25 16:22 采纳率: 0%
浏览 185

这段java代码是什么意思啊?

public class ReadZipFile {
private static void mkdir(File file) {
if (!file.exists())
file.mkdir();
else if (!file.isDirectory()) {
throw new RuntimeException(String.format("因为%s已经存在,且不是目录,所以%<s目录无法创建", file.getPath()));
}
}

public static void main(String args[]) throws FileNotFoundException, IOException {
   File contextpath = new File("mybook");
   mkdir(contextpath);
   byte b[] = new byte[8 * 1024];
   try (ZipInputStream zipin = new ZipInputStream(ReadZipFile.class.getResourceAsStream("book.zip"),
          Charset.forName("gbk"));) {
       ZipEntry zipEntry = null;
       while ((zipEntry = zipin.getNextEntry()) != null) {
          File item = new File(contextpath, zipEntry.getName());
          if (zipEntry.isDirectory()) {
              System.out.println("创建了目录"+item.getAbsolutePath());
              mkdir(item);
          } else {
              try (FileOutputStream out = new FileOutputStream(item);) {
                 int n = -1;
                 System.out.println("创建了文件"+item.getAbsolutePath());
                 while ((n = zipin.read(b, 0, b.length)) != -1) {
                     out.write(b, 0, n);
                 }
              }
              try (FileInputStream in = new FileInputStream(item);){
                 byte[] allbytes = new byte[(int) item.length()];
                 in.read(allbytes);
                 System.out.println(new String(allbytes));
              }
          }
       }
   }
}

}

  • 写回答

2条回答 默认 最新

  • 笑看烟雨红尘 2019-12-25 17:01
    关注

    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝