Convertendo String para byte[]

Pessoal estou com uma dificuldade para tentar fazer o seguinte:

Irei chamar um webservice e ele vai me retornar uma string onde o conteudo dela é um array de bytes que representa um arquivo. Porem esse array vem escrito em forma de straing e quando tento passar para bytes e gerar o arquivo, ele faz bem, mas na hora de abri-lo o conteudo eh o proprio array em forma de string. =/

Como posso fazer essa conversão?

Muito obrigado

Você não deve usar a classe String para representar coisas diferentes de Strings. Ou seja, a menos que seu arquivo seja um texto, não use String, trabalhe com bytes diretamente.

Você pode colocar o código de onde vc lê esse array e de onde você grava esse array?

Mas tem como vim do webservice ja com o tipo byte[]?

getBytes() não funciona?

String umaString = "Eu sou uma String";

byte[] umByteArray = umaString.getBytes();

Funciona funciona, mas tipo na string ja esta escrita um Array de bytes, entao quando eu pego ela em bytes e depois mando p o arquivo, ele transforma na string com os bytes novamente, em vez do arquivo

Ainda está tudo muito abstrato. Não sabemos o conteúdo da String, nem como vc está recebendo e nem como está gravando. Ao invés de nos forçar a adivinhar, tem como postar essas informações para nós?

tem sim

pega o array que o webservice retornou

[code]byte[] informe = null;

	InformeRendimentoGetResponseDocument responseDocument = InformeRendimentoGetResponseDocument.Factory.newInstance();
	
	InformeRendimentoGetRequestDocument requestDocument = InformeRendimentoGetRequestDocument.Factory.newInstance();
	CtInformeRendimentoGetIn pesquisa = requestDocument.addNewInformeRendimentoGetRequest();
	
	CtPesquisaData data = pesquisa.addNewDtData();
	Intervalo periodo = data.addNewIntervalo();
	periodo.setInicio(inicio);
	periodo.setFim(fim);
	
	pesquisa.setIdPrestador(BigInteger.valueOf(id));
	
	try{
		
		//Chama o WebService
		WebService service = WebServiceProvider.getInstance().getServer("Easy_Informe_Rendimento");
		WebServiceClient client = new WebServiceClient(service);
		String resposta = client.callWebService(requestDocument.toString());
		
		responseDocument = InformeRendimentoGetResponseDocument.Factory.parse(resposta);
		
		//Se contiver erro imprime no log
		if( responseDocument.getInformeRendimentoGetResponse().getErro() !=null){
			
			CtErro erro = responseDocument.getInformeRendimentoGetResponse().getErro();
			log.error("Codigo erro: " + erro.getCdOcorrencia());
			log.error("Descrição erro: " + erro.getTxOcorrencia());
			
			throw new ServiceException("Erro retornado do WebService");	
			
		}else {
			
			informe = responseDocument.getInformeRendimentoGetResponse().getInformeRendimento().getBytes();
			
		}
		
	} catch (XmlException e) {
		log.error(e.getMessage(), e);
		throw new ServiceException(e);
	}
	
	return informe;[/code]

Monta o arquivo

DownloadFile.downloadFile("InformeRendimento.xls", bytesArquivo);

[code]public static void downloadFile(String fileName, byte[] bytes) throws Throwable{

	HttpServletResponse response = ServletActionContext.getResponse();
	fileName = fileName.replaceAll(" ","");
	if(fileName.substring(fileName.length()-3).equals(ContentType.PDF.name().toLowerCase())) {
		 response.setContentType(ContentType.PDF.getContentType());
		 response.setHeader("Content-Disposition", "attachment; filename="+fileName);
    } else if(fileName.substring(fileName.length()-3).equals(ContentType.XML.name().toLowerCase())) {
        response.setContentType(ContentType.XML.getContentType());
        response.setHeader("content-disposition", "attachment; filename="+fileName);
    } else if(fileName.substring(fileName.length()-3).equals(ContentType.ZIP.name().toLowerCase())) {
        response.setContentType(ContentType.ZIP.getContentType());
        response.setHeader("content-disposition", "attachment; filename="+fileName);
    } else if(fileName.substring(fileName.length()-3).equals(ContentType.XLS.name().toLowerCase())) {
        response.setContentType(ContentType.XLS.getContentType());
        response.setHeader("content-disposition", "attachment; filename="+fileName);
    } else {
        response.setContentType(ContentType.TXT.getContentType());
        response.setHeader("content-disposition", "attachment; filename="+fileName);
    }
	
	response.setContentLength(bytes.length); 
	response.setBufferSize(bytes.length);
	 
	OutputStream out = response.getOutputStream();
    out.write(bytes);
    out.flush();
    response.flushBuffer();
    out.close();
}[/code]

…[edited]

mals não percebi onde tu disse que os bytes que chegam representam um arquivo.