Embora o Java forneça uma classe de operação de IO que possa processar arquivos, não há método de copiar arquivos. Os arquivos de cópia são uma operação importante. No entanto, existem vários métodos que podem ser replicados pelo arquivo Java, e os métodos mais populares em 4 estão listados abaixo.
1. Copie com FileStreams
Esta é a maneira mais clássica de copiar o conteúdo de um arquivo para outro arquivo. Leia os bytes do arquivo A usando o FileInputStream e escreva -o no arquivo B com o FileOutputStream. Este é o código do primeiro método:
A imagem está disponível para download em alta resolução por até 1920x1080. [1024];
Como você vê alguns dados de operações de leitura e escrita, isso deve ser uma baixa eficiência.
2. Use o FileChannel para copiar
O Java Nio inclui o método transferFrom, que deve ser mais rápido que a cópia do fluxo de arquivos de acordo com o documento. Este é o código do segundo método:
Private estático void copyfileUsingFileChannels (fonte de arquivo, destaque) lança ioexception {Filechannel inputChannel = null; , 0, inputChannel.size ());3. Use o Commons io para copiar
O Apache Commons IO fornece um método de arquivo de cópia em sua classe FileUtils, que pode ser usada para copiar um arquivo para outro. É muito conveniente usar seu projeto ao usar a classe FileUtils Apache Commons. Basicamente, esta classe usa o Java Nio FileChannel. Este é o código do terceiro método:
Private estático void copyfileUsingapacheCommonsio (fonte de arquivo, arquivo de arquivo) lança ioexception {fileutils.copyfile (fonte, dest);}4. Copie com a classe de arquivos de java7
Se você tiver alguma experiência no Java 7, pode saber que pode usar o método de cópia dos arquivos para copiar de um arquivo para outro. Este é o código do quarto método:
Private estático void copyFileUsingJava7Files (fonte de arquivo, arquivo de arquivo) lança ioexception {files.copy (fonte.topath (), dest.topath ());}5. Teste
Agora veja qual desses métodos é mais eficiente, copiaremos um arquivo grande para usar cada programa simples. Do cache para evitar qualquer desempenho, obviamente usaremos quatro arquivos de origem diferentes e quatro arquivos de destino diferentes. Vamos dar uma olhada no código:
Importar java.io.File; .nio.file.files; /nikos7//desktop/files/sourcefile1.txt "); arquivo dest = new File (" c: //users/nikos7//desktop/files/destfile1.txt ") copie o arquivo usando filestreams start = system.nanotime ( ); = Novo arquivo ("c: //users/nikos7/desktop/files/sourcefile2.txt"); fonte, dest); //Users//nikos7//desktop//sourcefile3.txt "); dest = new File (" c: //users//nikos7//desktop/files/destfile3.txt "); start = System.nanotime () Time (); //Files//sourcefile4.txt "); dest = new File (" c: //users/nikos7//desktop/files/destfile4.txt "); start = system.nanotime (); sio (fonte, destry) end = system.nanotime (); NULL; Write (BUF, 0, BytesRead);}} finalmente {input.close (); Null; {inputChannel.close (); , Arquivo dest) lança ioexception {fileutils.copyfile (fonte, dest);}}}Saída:
Time taken by Filestreams Copy = 127572360Time taken by FileChannels Copy = 10449963Time taken by Java7 Files Copy = 1080833333333333333333333333333333333333333333333333time By Apache Commons IO Copy = 17971677
Assim como você pode ver, os filmes de copia de filmes grandes são a melhor maneira. Se você lidar com arquivos maiores, notará uma diferença de velocidade maior. Este é um exemplo.
O exposto acima é todo o conteúdo deste artigo.