ecco a te
questo è il metodo per la ricezione
codice:
private boolean prendiFile(String received,ObjectInputStream ois) throws IOException, ClassNotFoundException
{
boolean so = false;
File outFile = null;
System.out.println("Ricezione file in corso..");
outFile = new File(DIR + "/" + file1.getName());
if (ready == true){
System.out.println("File di destinazione: " +outFile+"\n");
System.out.println(" --ricezione file ");
System.out.println(" --dimensione file " + FILEDIM);
int current=0;
// scrivo uno stram per il salvataggio del nuovo file
FileOutputStream fos = new FileOutputStream(DIR +"/" +file1.getName());
BufferedOutputStream bos = new BufferedOutputStream(fos);
InputStream is = s.getInputStream();
byte[] buf = new byte[FILEDIM];
int i = 0;
// riga per riga leggo il file originale per
// scriverlo nello stram del file destinazione
is.skip(1); // ignorate..
i= is.read(buf,0,buf.length);
current = i;
while(i>0){
i= is.read(buf,current,(buf.length-current));
System.out.println("byte letti = " +i+"\n");
current +=i;
}
System.out.println("TOTALE = " +current+"\n");
bos.write(buf, 0 , current);
bos.flush();
System.out.println(" --ricezione completata\n --salvataggio");
bos.close();
fos.close();
outFile = null;
file1 = null;
file = null;
// svuotare gli strem -->
// <--
so = true;
}
return so;
}
e questo è quello di invio
codice:
String file = null;
file = str.substring(str.indexOf("?")+1, str.length());
File file0 = new File(file);
if (file0.exists()==true){
oos.writeObject("XDCCGETFILE#GET#"+file0.length());
oos.flush();
byte [] filearray = new byte[(int)(file0.length())];
oos.reset();
FileInputStream fis = new FileInputStream(file0);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(filearray,0,filearray.length);
System.out.println("Sending...");
// invio il file
oos.write(filearray, 0, filearray.length);
//.. <_
oos.flush();
System.out.println("Inviato!!");
}
Ti ho dato solo questi due metodi perchè non ho dubbi sul fatto che il problema è qui..
ovviamente entrambi i metodi si trovano sia sul client che sul server..