初学Java,在网上找了一段代码:public String compressData(String data) {
 try {
 ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
 DeflaterOutputStream zos = new DeflaterOutputStream(bos); 
 zos.write(data.getBytes()); 
 zos.close(); 
 return new String(convertToBase64(bos.toByteArray())); 
 } catch (Exception ex) {
 ex.printStackTrace(); 
 return "ZIP_ERR"; 
 }
 }
在这段代码中,convertToBase64一直是未定义的,它是在哪个包里吗?急需这段代码,却不知缘由,谢谢了!

解决方案 »

  1.   

    压缩不要这个方法,这个应该是自己定义的
    利用ant压缩,可以解决中文文件名乱码问题
    public static void write(File path, File zipFile) throws IOException {
    ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipFile));
    zip.setEncoding("GBK");
    write(path, path, zip);
    zip.close();
    } private static void write(File base, File path, ZipOutputStream zip)
    throws IOException {
    URI rel = base.toURI().relativize(path.toURI());
    System.out.println(rel.getPath());
    if (path.isDirectory()) {
    ZipEntry entry = new ZipEntry(rel.getPath());
    entry.setUnixMode(755);
    zip.putNextEntry(entry);
    zip.closeEntry();
    File[] files = path.listFiles();
    for (File file : files) {
    write(base, file, zip);
    }
    } else {
    ZipEntry entry = new ZipEntry(rel.getPath());
    entry.setUnixMode(644);
    zip.putNextEntry(entry);
    FileInputStream is = new FileInputStream(path);
    zip.write(IOUtils.toByteArray(is));
    is.close();
    zip.closeEntry();
    }
    } private static void createDirectory(String directory, String subDirectory) {
    String dir[];
    File fl = new File(directory);
    try {
    if (subDirectory == "" && fl.exists() != true)
    fl.mkdir();
    else if (subDirectory != "") {
    dir = subDirectory.replace('\\', '/').split("/");
    for (int i = 0; i < dir.length; i++) {
    File subFile = new File(directory + File.separator + dir[i]);
    if (subFile.exists() == false)
    subFile.mkdir();
    directory += File.separator + dir[i];
    }
    }
    } catch (Exception ex) {
    ex.printStackTrace();
    System.out.println(ex.getMessage());
    }
    }测试: write(pathFile, zipFile);