Baixar arquivos apartir do codigo fonte html

Seguinte, apartir de um codigo fonte com milhares de links de arquivos .swf… gostaria de baixar cada um desses arquivos… fiz um codigo, porém está dando erro…

se estiver assim com “file://” na frente… private String pastaOrigem = “file://184.82.88.45/dofus/lang/swf/”;… esse é o erro que da:
java.lang.IllegalArgumentException: URI has an authority component

se estiver assim com “http://” na frente… private String pastaOrigem = “http://184.82.88.45/dofus/lang/swf/”;… esse é o erro que da:
java.lang.IllegalArgumentException: URI scheme is not “file”

segue o codigo que eu fiz até agora…
http://pastebin.com/USX4LvHr

alguém sabe se isso que eu estou querendo fazer é possivel? senão vou ter que clicar em cada um dos arquivos e ir em “salvar link como”…O_õ

o arquivo “CodigoFonteManipulaLink.html” que representa o codigo fonte que é usado aew no codigo que eu postei é esse…
http://www.megaupload.com/?d=QFY179AK
infelizmente nao consegui postar no pastebin por ser muito grande o arquivo…hehe

desde já agradeço…=D

Bem vindo ao fórum!

Os arquivos estão hospedados em um servidor HTTP. Portanto a URL é:

http://184.82.88.45/dofus/lang/swf/

Na hora de ler, entretanto, você não deve criar um FileInputStream (já que a URL aponta um endereço HTTP e não file:// - este é o erro).

O jeito certo de fazer é o seguinte:

// no método baixaArquivos, comente as duas linhas
//File arquivoOriginal = new File(url.toURI());
//FileInputStream in = new FileInputStream(arquivoOriginal);
// e adicione esta:
InputStream in = url.openStream();

Outra coisa: na variável pastaDestino, adicione uma barra (/) no final, para não ter problemas. Exemplo:

private String pastaDestino = "C:/Documents and Settings/Usuário/Desktop/legalize lang/swf/";

Última coisa: a linha que imprime o número de arquivos baixados deve ficar fora do while (mas dentro do for). Do jeito que está, ele considera um arquivo baixado a cada leitura que ele faz (o que está errado).

muito obrigado, funcionou perfeitamente!!