В лекциях часто встречается код наподобие того, что ниже, возникли вопросы 1) Почему массив размером 64 kb (byte[] buffer = new byte[65536]; // 64Kb) ? 2) Правильно ли я понимаю, что аналогичную логику в себе содержит класс BufferedReader и BufferedWriter? То есть сейчас эти примеры нужны, чтобы понять теорию, а в реальном коде на таком "низком" уровне код не пишут?
String src = "c:\\projects\\log.txt";
String dest = "c:\\projects\\copy.txt";

try(FileInputStream input = new FileInputStream(src);
FileOutputStream output = new FileOutputStream(dest))
{
   byte[] buffer = new byte[65536]; // 64Kb
   while (input.available() > 0)
   {
      int real = input.read(buffer);
      output.write(buffer, 0, real);
   }
}
Лекция, откуда взяла код