Copia de Arquivo em Java

Ola,

É possível copiar um arquivo sem conhecer o formato de dados?

Caso a resposta seja não, os arquivos devem conter um cabeçalho que descreva o resto dos bytes OU é necessário saber o significado de cada byte para copia-lo para um arquivo?

Caso a resposta seja sim, uma copia byte a byte funciona para todos os dados OU qualquer arquivo pode ser copiado sempre que todos os dados sejam do mesmo tipo?

Obrigado.

Sim, é possível. A cópia byte a byte funciona para qualquer tipo de dado. No fundo, todos os tipos de dados nada mais são do que um conjunto de bytes. O que muda de um tipo para outro é a forma que esses bytes são interpretados. Quando você faz uma copia byte-a-byte não altera a informação que está lá, então, o programa ainda será capaz de interpretar os bytes da forma que quiser (como Strings, floats, ou qualquer outra coisa que esteja no arquivo).

Além disso, o Java possui a função Files.copy, que comanda o SO a fazer essa cópia de forma mais eficiente:
https://docs.oracle.com/javase/tutorial/essential/io/copy.html