A classe FileCopy possui o método copy que tem como parâmetros o caminho do arquivo de origem (à ser copiado), e o caminho do arquivo de destino.
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileCopy {
public boolean copy(String infile, String outfile) {
try {
//abre as streams
InputStream in = new FileInputStream(infile);
OutputStream out = new FileOutputStream(outfile);
byte[] buf = new byte[1024];
int len;
//transfere os bytes da stream in para a out
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
//fecha os arquivos
in.close();
out.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
public static void main(String[] args) {
FileCopy file = new FileCopy();
boolean res = file.copy("/tmp/tux-ubuntu.jpg", "/tmp/tux-ubuntu-copia.jpg");
System.out.println("File copied? " + res);
}
}
O método copy abre o arquivo de origem e transfere seus bytes para o arquivo de destino, criando assim uma cópia do arquivo. No código de exemplo, o arquivo tux-ubuntu.jpg será copiado para o arquivo tux-ubuntu-copia.jpg.
Resultado após executar o programa:
Download do código fonte: FileCopy.java
2 comentários:
Acho que se mudar as linhas:
InputStream in = new FileInputStream(infile);
OutputStream out = new FileOutputStream(outfile);
Pra:
InputStream in = new BufferedInputStream(new FileInputStream(infile));
OutputStream out = new BufferedOutputStream(new FileOutputStream(outfile));
Vai acelerar o processo!
[]s
Cyber
Valeu pela dica Cyber!
Vou fazer uns testes com o BufferedInputStream.
Abraço,
Postar um comentário