Usando byte[] para arquivos remotos

olá,

estou precisando de uma ajuda aqui, sequinte, tenho um arquivo remoto compactado com gzip e preciso copiar ele e jogar em uma variavel para regravar, estava tentando com String, só que como ele é compactado, quando uso string ele fica corrompido,
entao tentei mudar para o byte[] soh que ele nao ta indo, acho que o metodo que estou pegando o conteudo que não está correto, se alguem puder me ajudar

[code]try {
GZIPInputStream in = new GZIPInputStream(new FileInputStream(“http://192.168.1.2/demo.gz”));
OutputStream out = new FileOutputStream(“c:\temp\demo.gz”);

byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}

in.close();
out.close();

} catch (MalformedURLException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}[/code]

acho que o FileInputStream nao suporta entrada de url soh de arquivo local, entao tentei o

URL url = new URL("http://192.168.1.2/demo.gz"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

só que ai da erro no read(buf)
alquem poderia dar uma ajuda ai, preciso copiar um arquivo compactado de um servidor remoto e salvar em uma pasta no usuario, é um applet que está ja assinado e tal;.

ninguem pra ajudar? :?

Coloca o stacktrace da exceção pra gente?