Чтение и запись файлов с помощью I/O потоков

Чтение и запись файлов с помощью I/O потоков

Чтение файлов с помощью потоков ввода/вывода производится по 1 байту. Для небольших файлов это работает вполне неплохо, но при обработке файлов даже в несколько мегабайт процесс начинает занимать очень много времени, а нагрузка на систему возрастает. Для ускорения чтения/записи нужно использовать буферизованные версии методов read() и write(), принимающих в качестве входного параметра массив байт.


try (InputStream is = new FileInputStream("book.pdf");
     OutputStream os = new FileOutputStream("book_copy.pdf")) {
   byte[] buffer = new byte[1024];
   int length;
   while ((length = is.read(buffer)) > 0) {
      os.write(buffer, 0, length);
   }
} catch (IOException e) {
   e.printStackTrace(System.out);
}
Потоки ввода/вывода