J'ai un inputStream d'un fichier docx et je dois me procurer le document.xml qui se trouve dans le docx.Obtention de document.xml à partir d'un fichier docx à l'aide de ZipInputStream
J'utilise ZipInputStream lire mon flux et mon code est quelque chose comme
ZipInputStream docXFile = new ZipInputStream(fileName);
ZipEntry zipEntry;
while ((zipEntry = docXFile.getNextEntry()) != null) {
if(zipEntry.getName().equals("word/document.xml"))
{
System.out.println(" --> zip Entry is "+zipEntry.getName());
}
}
Comme vous pouvez voir la sortie pour zipEntry.getName se présente comme « mot/document.xml » à un moment donné. J'ai besoin de passer ce document.xml comme un flux et contrairement à la méthode ZipFile où vous pouvez facilement passer cela en appelant .getInputStream, je me demande comment puis-je faire ce docXFile?
Merci à l'avance, Meenakshi
@Update: J'ai trouvé la sortie pour cette solution:
ZipInputStream docXFile = new ZipInputStream(fileName);
ZipEntry zipEntry;
OutputStream out;
while ((zipEntry = docXFile.getNextEntry()) != null) {
if(zipEntry.toString().equals("word/document.xml"))
{
System.out.println(" --> zip Entry is "+zipEntry.getName());
byte[] buffer = new byte[1024 * 4];
long count = 0;
int n = 0;
long size = zipEntry.getSize();
out = System.out;
while (-1 != (n = docXFile.read(buffer)) && count < size) {
out.write(buffer, 0, n);
count += n;
}
}
}
Je me demande s'il y a une API de base pour convertir ce flux de sortie flux d'entrée ?