Conversão de valores

0 respostas
W

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.

Criado 23 de setembro de 2009
Respostas 0
Participantes 1