Ayuda: Java URL

Eduardo Rodriguez
26 de Octubre del 2007
Buenas, a ver si me podeis echar una mano con esta duda.
Tengo un applet, que en cierto momento lee un archivo .zip que está en su misma URL, después lo descomprime,modifica uno de sus archivos, lo vuelve a comprimir, y después tiene que sobreescribir el zip que tenía en la URL, con este nuevo zip modificado.
Lo que no consigo es hacer este último paso, no puedo guaradar el zip en la URL. Lo que estoy haciendo es esto:

Leo el zip así, y lo guardo en una carpeta temporal (esto lo hace bien)(name es el nombre del archivo zip):

File f = File.createTempFile("temporal",".zip");
f.deleteOnExit();

BufferedInputStream in = new BufferedInputStream(new URL(bot.getOsbot().getCodeBase()+ name).openStream());
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(f));
byte[] buf = new byte[BUFFER_SIZE];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();

ZipFile zip = new ZipFile(f);

Después de modificarlo intento escribir en la url, haciendo algo parecido a lo anterior:
(modificado.zip es el archivo que quiero escribir en la url)

URL url = new URL(bot.getOsbot().getCodeBase().toString()+name);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
OutputStream outStream = connection.getOutputStream();
BufferedOutputStream out2 = new BufferedOutputStream(outStream);
BufferedInputStream in2 = new BufferedInputStream(new FileInputStream("c:\\comprimido.zip"));
byte[] buf2 = new byte[BUFFER_SIZE];
int len2;
while ((len2 = in2.read(buf2)) > 0) {
out2.write(buf2, 0, len2);
}
in2.close();
out2.close();

creo que hasta ahi, lo hace todo bien. Creo que tengo un buffered outputstream, con los datos que quiero escribir, pero no consigo escribirlos. ¿Cómo lo hago? ¿No se puede hacer así y tengo que usar ftp o algo así?
Muchas gracias