Ищите класс Java File Util, который использует NIO.2

Согласно официальному Java Tutorial, лучший способ записи в файл: http://docs.oracle.com/javase/tutorial/essential/io/file.html

Прежде чем я создам свой собственный метод FileUtil.write(файл, текст) с помощью NIO.2, я хотел бы знать, существует ли где-нибудь такой метод.

Я проверил источники последних общих apache io и guava, но они оба просто создают FileOutputStream, преобразуют строку в байтовый массив и пишут. Я удивлен.

Итак, у меня есть 2 вопроса:

  1. Я думал, что NIO.2 быстрее, чем FileOutputStream. Но так как обыкновенные io и guava не используют их, мне интересно, правда ли это. Вопрос в том, быстрее ли NIO, чем FileOutputStream?
  2. Если NIO.2 быстрее, есть ли библиотека, которая его использует?

1 ответ

Решение

NIO должен быть быстрее, так как он может работать с прямыми буферами. Из API ByteBuffer:

Учитывая прямой байтовый буфер, виртуальная машина Java приложит максимум усилий для выполнения собственных операций ввода-вывода непосредственно на ней. То есть он будет пытаться избежать копирования содержимого буфера в (или из) промежуточного буфера до (или после) каждого вызова одной из собственных операций ввода-вывода базовой операционной системы.

Другие вопросы по тегам