Problemas Download (File) ajuda please

galera estou com um prolema…
tenho um diretório que tem varios arquivos(txt) eu tenho que pegar o arquivo cujo nome é igual ao parametrogetNomeArquivo()
isso ja esta pronto e fazendo… depois de pegar o arquivo tenho que passa-lo para Base64.encode e depois disso devolver o arquivo(file)
no “responseVO.setArquivoRetorno(???)”…

meus problemas…

estou passando para Base64.encode o conteudo do arquivo… fica certo porem na hora de devolver o arquivo no “responseVO.setArquivoRetorno(???)” nao sei o que devolver , nao posso devolver a varial que usei para converter Base64 pois ai devolveria soh o conteudo e preciso devolver o arquivo em si…

nao sei se implementei direito esse file.getAbsoluteFile() pq peguei mais nao estou usando mais …

acabei em perdendo…

vlw galera abraços

[code]private FT05ResponseVO buildResponse(String source, FT05RequestVO requestVO) throws HandleException {

	FT05ResponseVO responseVO = new FT05ResponseVO();	
	responseVO.setCodigoRetorno(0);


	try {
		LocalFileUtil fileUtil = new LocalFileUtil(source);
		List<File> files = fileUtil.getFiles("");

		byte[] buf = new byte[1024];
		int len = 0;
		
		log.info("Generating FT00 response object");

		for (File file: files) {
			
			InputStream in = null;
			ByteArrayOutputStream out = null;
			
			try {
				in = new FileInputStream(file);
				out = new ByteArrayOutputStream(); 
					
					if(file.getName().contains(requestVO.getNomeArquivo())){
						len=in.read(buf);
						out.write(buf, 0, len);
						out.flush();
						byte buffer[] = new byte[(int) file.length()];  						
						BufferedInputStream input = new BufferedInputStream(new FileInputStream(file.getAbsoluteFile()));  
												
						String arquivo = Base64.encode(out.toByteArray());
						input.read(buf, 0, buf.length);  
		                input.close();  
		            		              			            


					}
					
			     responseVO.setArquivoRetorno(???);
		
			} catch (Exception e) {
				log.warn("Fail to include file " + file.getName() + " in responseVO", e);
			} finally {
				try {
					if (in != null) {
						in.close();
					}
					if (out != null) {
						out.close();
					}
				} catch (IOException e) {
					log.warn("Fail to close streams for file " + file.getName(), e);
				}
			}
		}
	} catch (IntegLayerException e) {
		throw new HandleException(IntegLayerErrorCodes.ERROR_BUILDING_RESPONSE, e);
	}
	
	return responseVO;
}

[/code]

Não existe isso de “conteúdo do arquivo” ou “arquivo em si”. Se o que você está fazendo é transmitir dados então você tem que retornar o conteúdo do arquivo. O tal do “arquivo em si” não é nada mais do que uma entrada no sistema de arquivos do SO, não existe nenhuma informação “dentro” do arquivo sobre o sistema de arquivos no qual ele está. Caso contrário, você nunca conseguiria copiar um arquivo do Linux para o Windows por exemplo.

hunm axo que eu entendi amigo…
eu estava preso ao arquivo mesmo…
mas nao vejo sentido entao em fazer

isso

     BufferedInputStream input = new BufferedInputStream(new FileInputStream(file.getAbsoluteFile()));    

pq quando faço isso

f(file.getName().contains(requestVO.getNomeArquivo())){  
                            len=in.read(buf);  
                            out.write(buf, 0, len);  
                            out.flush();  

ja estou pegando o arquivo…

estou fazendo a mesma coisa nos dois casos ??? vlww amigao !!