Melhor maneira de se copiar um File

Bom turma entrei em uma discussão, não sei direito a melhor forma de se copiar um arquivo File de uma pasta para outra.

Segue a maneira que eu estou fazendo, por favor me digam se é a melhor, e se não for como eu posso melhorar?

long size = item.getSize(); File file = new File(destino, nomeArquivo); FileOutputStream output = new FileOutputStream(file); InputStream is = item.getInputStream(); byte[] buffer = new byte[(int) size]; int nLidos; while ((nLidos = is.read(buffer)) >= 0) { output.write(buffer, 0, nLidos); } output.flush(); output.close();

Isso é para fazer o upload de um arquivo. Neste código que estou usando existe limitação de tamanho neh? qual é o tamanho máximo de um upload usando o commons-upload da apache?
Desculpa a dúvida simplória, mas é que isso está me dando duvidas mesmo.
Obrigado!

Veja esse artigo: http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=3572

Se for só para copiar o arquivo, não para fazer upload, a melhor forma é através do FileChannel:
http://www.guj.com.br/posts/list/128689.java#693826

[code] public static void copyFile(File source, File destination) throws IOException {
if (destination.exists())
destination.delete();

    FileChannel sourceChannel = null;
    FileChannel destinationChannel = null;

    try {
        sourceChannel = new FileInputStream(source).getChannel();
        destinationChannel = new FileOutputStream(destination).getChannel();
        sourceChannel.transferTo(0, sourceChannel.size(),
                destinationChannel);
    } finally {
        if (sourceChannel != null && sourceChannel.isOpen())
            sourceChannel.close();
        if (destinationChannel != null && destinationChannel.isOpen())
            destinationChannel.close();
   }

}
[/code]
Pelo que eu entendi não conseguiria adaptar este código para o meu caso, é isso?

isso seria para cópia de arquivo normal mesmo né?

Sim foi desse artigo que eu retirei meu codigo que eu postei, porém minha dúvida é: qual o tamanho máximo de upload que eu terei?

Sem querer desvirtuar a parte academica do fórum, eu utilizaria o FileUtils do Jakarta.

 FileUtils.copyFile(origem, destino);

Uma linha de código, se sua missao não é reinventar a roda, vai de Jakarta.