non puoi copiare i file binari come file di testo, interpretando quindi i byte come dei char.
Codice PHP:
import java.io.*;
public void copy(String originalFile, String newFile) throws IOException {
File inputFile = new File(originalFile);
File outputFile = new File(newFile);
InputStream finput = new BufferedInputStream(new FileInputStream(inputFile));
OutputStream foutput = new BufferedOutputStream( new FileOutputStream(outputFile));
byte[] buffer = new byte[1024 * 500];
int bytes_letti = 0;
while((bytes_letti = finput.read(buffer)) > 0)
foutput.write(buffer, 0, bytes_letti);
finput.close();
foutput.close();
}
oppure
Codice PHP:
import java.nio.channels.*;
import java.io.*;
public void copyFile(File sfile, File dfile) throws Exception
{
FileChannel source = new FileInputStream(sfile).getChannel();
FileChannel dest = new FileOutputStream(dfile).getChannel();
source.transferTo(0, source.size(), dest);
source.close();
dest.close();
}