Hallo Leute,
ich muss euch leider wieder mal mit einem kleinen Problemchen belästigen.
Ich will eine XML Datei innerhalb einer ZIP bearbeiten.
Wie ich eine ZIP entpacken kann habe ich bereits gefunden:
Doch gibt es auch die möglichkeit and die Datei ran zu kommen ohne das ganze erst zu entpacken und dann wieder zu packen..ist mir irgendwie umständlich, daher die Frage ob es auch einen anderen weg gibt an die Datei ran zu kommen und sie zu bearbeiten.
ich muss euch leider wieder mal mit einem kleinen Problemchen belästigen.
Ich will eine XML Datei innerhalb einer ZIP bearbeiten.
Wie ich eine ZIP entpacken kann habe ich bereits gefunden:
Java:
public class ZipArchiveExtractor {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
new ZipArchiveExtractor().extractArchive(new File(
"s:/tools/eclipse/plugins/com.ibm.icu_3.4.4.1.jar"), new File(
"c:/tmp/x"));
}
public void extractArchive(File archive, File destDir) throws Exception {
if (!destDir.exists()) {
destDir.mkdir();
}
ZipFile zipFile = new ZipFile(archive);
Enumeration entries = zipFile.entries();
byte[] buffer = new byte[16384];
int len;
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) entries.nextElement();
String entryFileName = entry.getName();
File dir = dir = buildDirectoryHierarchyFor(entryFileName, destDir);
if (!dir.exists()) {
dir.mkdirs();
}
if (!entry.isDirectory()) {
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(new File(destDir, entryFileName)));
BufferedInputStream bis = new BufferedInputStream(zipFile
.getInputStream(entry));
while ((len = bis.read(buffer)) > 0) {
bos.write(buffer, 0, len);
}
bos.flush();
bos.close();
bis.close();
}
}
}
private File buildDirectoryHierarchyFor(String entryName, File destDir) {
int lastIndex = entryName.lastIndexOf('/');
String entryFileName = entryName.substring(lastIndex + 1);
String internalPathToEntry = entryName.substring(0, lastIndex + 1);
return new File(destDir, internalPathToEntry);
}
}
Doch gibt es auch die möglichkeit and die Datei ran zu kommen ohne das ganze erst zu entpacken und dann wieder zu packen..ist mir irgendwie umständlich, daher die Frage ob es auch einen anderen weg gibt an die Datei ran zu kommen und sie zu bearbeiten.