Olá pessoal.
Tenho um método em um framework proprietário, que faz o seguinte.
Em uma "lista" de objetos, cujos campos são dois strings, preciso gerar um zip file.
O primeiro item da lista, é o nome do arquivo, e o segunto é um string que precisa gerar um txt que será adicionado ao zip file.
Cada volta do laço gera um arquivo, e adiciona ao zip file, que no final pode ser baixado.
Segue o código:String strXMLName = "";
String strXMLContent = "";
int intTotalXML = wdContext.nodeRetornoXML().size();
int sizeBuffer = 2048;
int destPos = 0;
//Cria os arrays de bytes.
byte[] out = new byte[1024 * intTotalXML];
byte[] conteudo = new byte[1024 * intTotalXML];
//Cria objeto para saída.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//Cria objeto ZIP
ZipOutputStream zos = new ZipOutputStream(baos);
//Gerenciador de mensagens
IWDMessageManager msg_manager = wdComponentAPI.getMessageManager();
try{
//Faz a leitura do conteudo.
for(int x = 0; x < intTotalXML; x++){
//Move para a linha correspondente
wdContext.nodeRetornoXML().moveTo(x);
strXMLName = wdContext.currentRetornoXMLElement().getChaveXML();
strXMLContent = wdContext.currentRetornoXMLElement().getStringXML();
//Copia o conteúdo
ZipEntry file = new ZipEntry(strXMLName + x + ".txt");
zos.putNextEntry(file);
zos.write(strXMLContent.getBytes("UTF-8"));
zos.closeEntry();
msg_manager.reportWarning(strXMLName);
}
}catch(Exception e){
msg_manager.reportWarning("Ocorreu um erro.\n" + e);
}
Esse código é uma "receita de bolo" que encontrei na internet.
Meu problema consiste em, pegar o valor da variável strXMLContent e gerar um arquivo que possa ser adicionado a cada volta do for, dentro do objeto do zip file.
Tá dando null pointer exception... como o objeto ZipEntry só aceita bytes, preciso converter o meu strXMLContent em byte para poder gerar o arquivo.
//Copia o conteúdo
ZipEntry file = new ZipEntry(strXMLName + x + ".txt");
zos.putNextEntry(file);
zos.write(strXMLContent.getBytes("UTF-8"));
zos.closeEntry();
msg_manager.reportWarning(strXMLName);
Tá aí a questão....
Como posso fazer?!
Brigadão pessoal.
Abraço.