【发布时间】:2020-06-09 07:34:06
【问题描述】:
我正在尝试创建一个 KMZ 文件,为此我已经在程序中传递了图像。当我提取 KMZ 文件时,它正在创建 files 文件夹并将图像存储到该路径中,但是图像不可见,但最后一张图片可见,但名称和图片不同。
public static void createKMZ(String kmlData) throws IOException {
FileOutputStream fos = new FileOutputStream(KMZ);
ZipOutputStream zoS = new ZipOutputStream(fos);
ZipEntry ze = new ZipEntry(KML);
zoS.putNextEntry(ze);
PrintStream ps = new PrintStream(zoS);
ps.println(kmlData);
ps.flush();
zoS.closeEntry();
// now add image file entry to KMZ
FileInputStream is = null;
FileInputStream is1 = null;
FileInputStream is2 = null;
FileInputStream is3 = null;
FileInputStream is4 = null;
FileInputStream is5 = null;
FileInputStream is6 = null;
try {
is = new FileInputStream("files/grn-pushpin.png");
is1 = new FileInputStream("files/ltblu-pushpin.png");
is2 = new FileInputStream("files/pink-pushpin.png");
is3 = new FileInputStream("files/purple-pushpin.png");
is4 = new FileInputStream("files/red-pushpin.png");
is5 = new FileInputStream("files/wht-pushpin.png");
is6 = new FileInputStream("files/ylw-pushpin.png");
ZipEntry zEnt = new ZipEntry("files/grn-pushpin.png");
ZipEntry zEnt1 = new ZipEntry("files/ltblu-pushpin.png");
ZipEntry zEnt2 = new ZipEntry("files/pink-pushpin.png");
ZipEntry zEnt3 = new ZipEntry("files/purple-pushpin.png");
ZipEntry zEnt4 = new ZipEntry("files/red-pushpin.png");
ZipEntry zEnt5 = new ZipEntry("files/wht-pushpin.png");
ZipEntry zEnt6 = new ZipEntry("files/ylw-pushpin.png");
zoS.putNextEntry(zEnt);
zoS.putNextEntry(zEnt1);
zoS.putNextEntry(zEnt2);
zoS.putNextEntry(zEnt3);
zoS.putNextEntry(zEnt4);
zoS.putNextEntry(zEnt5);
zoS.putNextEntry(zEnt6);
// copy image input to KMZ outputWWW
// write contents to entry within compressed KMZ file
IOUtils.copy(is, zoS);
IOUtils.copy(is1, zoS);
IOUtils.copy(is2, zoS);
IOUtils.copy(is3, zoS);
IOUtils.copy(is4, zoS);
IOUtils.copy(is5, zoS);
IOUtils.copy(is6, zoS);
} finally {
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(is1);
IOUtils.closeQuietly(is2);
IOUtils.closeQuietly(is3);
IOUtils.closeQuietly(is4);
IOUtils.closeQuietly(is5);
IOUtils.closeQuietly(is6);
}
zoS.closeEntry();
zoS.close();
}
【问题讨论】:
-
一次尝试一个图像和一个条目。
ZipEntry zEnt1 = new ZipEntry(); zoS.putNextEntry(zEnt1); IOUtils.copy(is1, zoS), zoS.closeEntry();然后到 zEnt2 等。
标签: java io kml google-earth kmz