Estou estudando I/O e acho que pelo horário eu fiquei com uma dúvida.
Quando eu uso a classe File(){} para manipular os bytes, no caso texto, do arquivo como ela não possui todos os métodos como copy(), por exemplo, eu devo manipular o arquivo diretamente, criar as minhas implementações é isso?
E pelo que percebi a classe Files já tem tudo isso implementado.
A classe Files assim como outras do pacote java.nio.file faz parte da nova api do Java 7 para manipulação de arquivos, caso não precise de compatibilidade com Java 6 ou menor, é uma boa utiliza-lá.
Um bom link para dar um esclarecida: Link
A convenção (implícita) da API do Java é que as classes no plural representam classes com métodos utilitários para mexer naquele tipo de recurso.
Por exemplo, a classe Collection representa uma coleção, a classe Collections contém métodos úteis para manipular coleções.
A classe ExercutorService representa um pool de threads, a classe Exercutors contém métodos para criação de diferentes executores.
A classe File representa um único arquivo em disco, a classe Files, contém métodos úteis para manipular arquivos.
A classe Path representa um caminho e a Paths contém métodos úteis para manipular caminhos.