valew elvis... depois de ter lido umas 500 vezes o doc do metodo write(byte[] buff, int offset, int length) e o equivalente "read", eu entendi o funcionamento... acontece q eu tava fazendo o read(), passava offset = 0, mas o length eu colocava o tamanho do buffer! entao o q acontecia eh q o algoritmo do InputStream vai lendo os bytes ateh preencher todo o buff[], ou seja, se tiver um byte soh o arquivo, e eu disser q o length eh 4096, ele vai repetir esse unico byte 4096 vezes... :)... lusitanisse desgraçada essa... maldito java.io :D tambem nao tinha sacado q o metodo read retornava quantos bytes ele leu, pra depois escrever... mas tah tudo certo agora... consultei a oreilly lah e axei um algoritmo basico pra fazer isso:
synchronized(input) { synchronized(output) { byte[] buff = new byte[4096]; int bytesLidos = 0; while(true) { bytesLidos = input.read(buff); if(bytesLidos == -1) break; output.write(buff, 0, bytesLidos); } } } flw :) ----- Original Message ----- From: "Elvis" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, October 23, 2002 3:46 PM Subject: Re: [java-list] I/O > Bruno, > > Tudo é uma questão de como vc está escrevendo o código! > > Tente isso!!! > > class Teste{ > public static void main(String[] args) throws Exception{ > FileInputStream i = new FileInputStream(args[0]); > FileOutputStream o = new FileOutputStream(args[1]); > int x = -1; > int tamanhoBuffer = 4096; > byte[] arr = new byte[tamanhoBuffer]; > > while ((x = i.read(arr))!= -1){ > o.write(arr, 0, x); > } > } > } > > Testei o tam do buffer com 1KB, 4KB, 1MB; nenhum problema (utilzando esse > código!!!). > copiei arquivos exe e zip para testar e executaram numa boa!!! > > O problema pode está no algoritimo q vc está usando. > Cuidado com metódos lusitanos de programar(frase sua!) > > Obs.: ao usar passe o arquivo a ser copiado primeiro, para nao fazer nenhuma > besteira na maquina. > > Espero ter ajudado. > > []'s > > Elvis > > > ----- Original Message ----- > From: "Bruno Borges" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, October 23, 2002 8:41 AM > Subject: [java-list] I/O > > > > com o seguinte comando to copiando um inputstream para um arquivo com u > nome > > informado no parametro... > > soh q como o buffersize tah pra 4KB, ele tah duplicando os dados do > arquivo > > no novo arquivo!... alguem pode ajudar a resolver isso? > > > > soh preciso de um algoritmo q le um inputstream e vai escrevendo num > > fileoutputstream... soh nao vale ser byte a byte... ;D jah fiz isso e o > > arkivo novo ficou danificado... > > > > _.~._.~._.~._.~._.~._.~._.~._.~._ > > Programador Java Junior, 19 anos. > > _.~._.~._.~._.~._.~._.~._.~._.~._ > > Email: [EMAIL PROTECTED] > > #UIN: 8584744 > > > > _______________________________________________________________________ > > Yahoo! Encontros > > O lugar certo para encontrar a sua alma gêmea. > > http://br.encontros.yahoo.com/ > > > > ------------------------------ LISTA SOUJAVA ---------------------------- > > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP > > dúvidas mais comuns: http://www.soujava.org.br/faq.htm > > regras da lista: http://www.soujava.org.br/regras.htm > > historico: http://www.mail-archive.com/java-list%40soujava.org.br > > para sair da lista: envie email para [EMAIL PROTECTED] > > ------------------------------------------------------------------------- > > > ------------------------------ LISTA SOUJAVA ---------------------------- > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP > dúvidas mais comuns: http://www.soujava.org.br/faq.htm > regras da lista: http://www.soujava.org.br/regras.htm > historico: http://www.mail-archive.com/java-list%40soujava.org.br > para sair da lista: envie email para [EMAIL PROTECTED] > ------------------------------------------------------------------------- _______________________________________________________________________ Yahoo! GeoCities Tudo para criar o seu site: ferramentas fáceis de usar, espaço de sobra e acessórios. http://br.geocities.yahoo.com/ ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------