Transferência de arquivos

Boa tarde galera, estou com uma séria duvida de como fazer transferência de arquivos no Java, segui esse tutorial:

Mas fiquei com muitas dúvidas.
A mais importante é: Como faria pra enviar um arquivo sem ter tamanho máximo?

A segunda, achei uma função do Java (BufferReader), mas vi que ela apenas enviar chars, e vi também o Outputstream, mas não entendi como funciona. Para enviar arquivos como vídeos, qual seria o método mais eficiente? Alguém teria um tutorial bem detalhado para me passar?