zip流 base64 解析下载

public class ZipBase64Utils {

   /**
    * base64
    *
    * @param bytes      流
    * @param fileName   文件昵称
    * @param folderPath 下载的地址
    */
   public static void writeByte64Zip(byte[] bytes, String fileName, String folderPath) throws Exception {

       BufferedOutputStream bos = null;
       FileOutputStream fos = null;
       File file = null;
       file = new File(folderPath + File.separator + fileName);  //项目文件路径
       file.createNewFile();
       fos = new FileOutputStream(file);
       bos = new BufferedOutputStream(fos);
       bos.write(bytes);
       // 关闭资源
       bos.close();
   }

   /**
    * @param file 文件
    * @return
    * @throws Exception
    */
   public static List readZipCvsFile(File file) throws Exception {
       List files = new ArrayList<>();
       //获得输入流,文件为zip格式,
       //zip可以包含对个文件,如果只有一个文件,则只解析一个文件的,包含多个文件则分别解析
       ZipInputStream in = new ZipInputStream(new FileInputStream(file));
       //不解压直接读取,加上gbk解决乱码问题
       BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8"));
       ZipEntry zipFile;
       //循环读取zip中的cvs/txt文件,zip文件名不能包含中文
       while ((zipFile = in.getNextEntry()) != null) {
           //如果是目录,不处理
           if (zipFile.isDirectory()) {
               System.err.println("当前路径为目录:" + zipFile.getName());
           }
           //获得cvs名字
           String fileName = zipFile.getName();
           //检测文件是否存在
           if (fileName != null && fileName.contains(".")) {
               System.out.println("---------------------开始解析文件:" + fileName + "-----------------------------");
               String line;
               while ((line = br.readLine()) != null) {
                   files.add(line);
               }
           }
       }
       //关闭流
       br.close();
       in.close();
       return files;
   }

}

你可能感兴趣的:(zip流 base64 解析下载)