sexta-feira, 30 de julho de 2010

[javautils] copyFile


   /**
    * Faz a cópia de um arquivo
    * 
    * @param filenameSource
    * @param filenameDestiny
    */
   public static void copyFile(String filenameSource, String filenameDestiny) {
      try {
         // Cria a stream para ler o arquivo original
         FileInputStream fin = new FileInputStream(filenameSource);

         // Cria a stream para gravar o arquivo de cópia
         FileOutputStream fout = new FileOutputStream(filenameDestiny);

         // Usa as streams para criar os canais correspondentes
         FileChannel in = fin.getChannel();
         FileChannel out = fout.getChannel();

         // Número de bytes do arquivo original
         long numbytes = in.size();

         // Transfere todo o volume para o arquivo de cópia.
         in.transferTo(0, numbytes, out);

         out.close();
         in.close();
         fout.close();
         fin.close();
      } catch (Throwable e) {
         throw new RuntimeException(
                  "JavaUtils.copyFile() - Erro desconhecido ao copiar o arquivo \"" +
                           filenameSource + "\" para \"" + filenameDestiny + "\". Error: " + e);
      }
   }

Nenhum comentário: