Não consigo copiar um arquivo

E aê galera…

Estou precisando copiar um arquivo .xml de um determinado diretório para
outro dentro do mesmo drive. Alguém pode dar um exemplo de como fazer?

Estou usando

FileReader arqOriginal = new FileReader( new File( "arquivoDeOrigem" ) );

mas não consigo gravar… o que pode estar faltando!?

No aguardo,
Valeu

Esta classe exemplifica como copiar um arquivo de um lugar para outro, desde que o arquivo original esteja fechado.

import java.io.*;
import java.nio.*;
import java.nio.channels.*;

class TestCopy {
    public static void main(String[] args) throws Exception {
        File fIn = new File (args[0]); // arquivo de entrada
        File fOut = new File (args[1]); // arquivo de saída
        FileInputStream fis = new FileInputStream (fIn);
        FileOutputStream fos = new FileOutputStream (fOut);
        FileChannel fcIn = fis.getChannel();
        FileChannel fcOut = fos.getChannel();
        fcOut.transferFrom (fcIn, 0, fIn.length());
        fos.close();
        fis.close();
    }
}

[quote=thingol]Esta classe exemplifica como copiar um arquivo de um lugar para outro, desde que o arquivo original esteja fechado.

[code]
import java.io.;
import java.nio.
;
import java.nio.channels.*;

class TestCopy {
public static void main(String[] args) throws Exception {
File fIn = new File (args[0]); // arquivo de entrada
File fOut = new File (args[1]); // arquivo de saída
FileInputStream fis = new FileInputStream (fIn);
FileOutputStream fos = new FileOutputStream (fOut);
FileChannel fcIn = fis.getChannel();
FileChannel fcOut = fos.getChannel();
fcOut.transferFrom (fcIn, 0, fIn.length());
fos.close();
fis.close();
}
}
[/code][/quote]

Blz thingol,

O bom é que tbem serve para arq binário, Ok!?

Tanto faz se o arquivo é binário ou não. Ele será copiado inalterado. O único problema é que não dá para interromper a cópia no meio, mas a rotina “transferFrom” normalmente garante a cópia mais rápida que pode ser feita via sistema operacional. (É mais rápido que escrever um programa em C que faça isso e não use APIs específicas do Windows ou do Unix para copiar arquivos).