Ищите класс 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 вопроса:
- Я думал, что NIO.2 быстрее, чем FileOutputStream. Но так как обыкновенные io и guava не используют их, мне интересно, правда ли это. Вопрос в том, быстрее ли NIO, чем FileOutputStream?
- Если NIO.2 быстрее, есть ли библиотека, которая его использует?
1 ответ
NIO должен быть быстрее, так как он может работать с прямыми буферами. Из API ByteBuffer:
Учитывая прямой байтовый буфер, виртуальная машина Java приложит максимум усилий для выполнения собственных операций ввода-вывода непосредственно на ней. То есть он будет пытаться избежать копирования содержимого буфера в (или из) промежуточного буфера до (или после) каждого вызова одной из собственных операций ввода-вывода базовой операционной системы.