JDK1.7 представляет новый пакет операции по работе с файлами java.nio.file . Существует класс файлов, который содержит много полезных методов для работы файлов, таких как проверка, является ли файл скрытым файлом или проверка того, является ли файл файлом только для чтения. Разработчики также могут использовать метод Files.ReadallBytes (path) для чтения всего файла в память. Этот метод возвращает байтовый массив и также может передать результат строковому конструктору для создания строкового вывода. Этот метод гарантирует, что при чтении всех байтовых содержимого файла ресурс закрыт независимо от того, существует ли исключение ввода -вывода или другое неконтролируемое исключение. Это означает, что после прочтения файла до последнего контента блока нет необходимости закрывать файл. Обратите внимание, что этот метод не подходит для чтения больших файлов, потому что может быть недостаточное пространство памяти. Разработчики также должны указать кодирование символов файла, чтобы избежать любых исключений или ошибок анализа.
Метод исходного кода PredithallBytes (PATH):
<span style = "font-size: 32px;"> </span> <span style = "font-size: 18px;">/*** Читает все байты из файла. Метод гарантирует, что файл был закрыт, когда были прочитаны все байты, или ошибка ввода -вывода или другое исключение во время выполнения *. * Обратите внимание, что этот метод предназначен для простых случаев, когда * удобно читать все байты в массив байтов. Это не предназначено для * чтения в больших файлах. * * @param Path * Путь к файлу * * * @return A Byte Array, содержащий байты, считываемые из файла * * @throws ioexception * Если ошибка ввода/вывода происходит с чтения из потока * Если больше 2g файла, за переполнение памяти не будет выброшено * @Throws OutOfMemoror *, если rue -strea stafe a extemeRor stoge stafe stafe rafe rafe rafe stafe stafe stafe rafe stafe rafe rafe rafe rafe rafe o outofmemorror *. * @Throws SecurityException * В случае поставщика по умолчанию, и установлен менеджер безопасности *, метод {@Link SecurityManager#CheckRead (String) CheckRead} * вызывается для проверки доступа к чтению в файл. */</span> <span style = "font-size: 18px;"> public static byte [] readallbytes (path Path) Throws ioexception {try (seekablebytechannel sbc = files.newbytechannel (path); inputStream in = channels.newinputstream (sbc) {//jdk1.7 try-res-res-res-res-res res-res res-res-size. sbc.size (); if (size> (long) max_buffer_size) бросить новый OutofmemoryError («требуемый размер массива слишком большой»); вернуть чтение (in, (int) размер); }} </span>Только одна строка файла читается
Package entrynio; импортировать java.io.ioexception; Импорт java.nio.file.files; Импорт java.nio.file.paths; открытый класс BufferandChannel {public static void main (string [] args) {try {system.out.println (new String (files.readallbytes (paths.get ("c: //filechannelimpl.java"))))); } catch (ioException e) {e.printstackTrace (); }}}Исходный код метода Readalllines
Публичный статический список <string> readalllines (path Path, charset cs) Throws ioexception {try (bufferedReader reader = newBufferedReader (path, cs)) {list <string> result = new ArrayList <> (); for (;;) {String line = reader.readline (); if (line == null) перерыв; Result.Add (Line); } return Result; }} Package entrynio; импортировать java.util.list; импортировать java.io.ioexception; импортировать java.nio.charset.standardcharsets; Импорт java.nio.file.files; Импорт java.nio.file.paths; открытый класс BufferandChannel {public static void main (string [] args) {// Если это текстовый файл, вы также можете прочитать его так. Вызовите метод Readalllines try {<span style = "Белое пространство: pre"> </span> // второй параметр может быть опущен после JDK1.8. По умолчанию список кодировки UTF-8 <string> line = files.readalllines (paths.get ("c: //filechannelimpl.java"), standardcharsets.utf_8); StringBuilder SB = new StringBuilder (); for (String Line: lines) {sb.append (line+"/n"); ///r/n newline} string fromfile = sb.tostring (); System.out.println (FromFile); } catch (ioException e) {e.printstackTrace (); }}}Как использовать потоки Java8:
Сначала посмотрите на реализацию исходного кода
Публичный статический поток <string> lines (path Path) Throws IoException {return Lines (path, standardcharsets.utf_8); } Package entrynio; импортировать java.io.ioexception; Импорт java.nio.file.files; Импорт java.nio.file.paths; открытый класс BufferandChannel {public static void main (string [] args) {// java8 добавляет метод строк Try {// java8 использует потоковую передачу для чтения файлов, делая его более эффективными файлами. sans-serif; ">" c: //filechannelimpl.java "</span>)). foreach (system.out :: println); } catch (ioException e) {e.printstackTrace (); }}}Для прочтения файла требуется только одна строка и записать файл.
Package entrynio; импортировать java.util.arrays; импортировать java.util.list; импортировать java.io.ioexception; Импорт java.nio.file.files; Импорт java.nio.file.paths; Импорт java.nio.file.standardopenoption; Public Class BufferandChannel {public static void main (string [] args) {// java8 добавляет метод строки String filePath = "c: //filechannelimpl.java"; try {// java8 считывает файлы в потоке, что более эффективно/*files.lines (paths.get (filePath)). Foreach ((line)-> {try {files.write (paths.get ("// 1.java"), line.getbytes (), standarpenoption.ppend); e.printstacktrace (); * / /* Method method files.readalllines (path Path) Возвращает значение типа «Строка», которое предназначено для файлов files.write ()* Потому что файлы. Extends ChareSequence> type * * files.write (путь пути, итерабильный <? Extends ChareSequence> Lines, openoption ... опции) */ list <string> stringStream = files.readalllines (paths.get (filePath)); // Поскольку files.lines (path Path) возвращает Stream <string>, вы можете использовать следующий метод, чтобы стать List <string> // list <string> stringStream2 = arrays.aslist ((string []) files.lines (paths.get (filePath)). Toarray ()); // Стандартный класс - класс перечисления. Если файл в настоящее время paths.get () не существует, третьего параметра можно выбрать в качестве strandopenoption.create_new // Если файл существует, добавьте java.nio.file.filealreadeexistsexception исключение. } catch (ioException e) {e.printstackTrace (); }}}Приведенная выше статья jdk1.7 java.nio.file.files требует только одной строки кода для реализации вышеуказанного файла. Это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.