JDK1.7 memperkenalkan paket operasi file baru java.nio.file . Ada kelas file yang berisi banyak metode yang berguna untuk mengoperasikan file, seperti memeriksa apakah file tersebut adalah file tersembunyi, atau memeriksa apakah file tersebut adalah file read-only. Pengembang juga dapat menggunakan metode file.readallbytes (path) untuk membaca seluruh file ke dalam memori. Metode ini mengembalikan array byte dan juga dapat meneruskan hasilnya ke konstruktor string untuk membuat output string. Metode ini memastikan bahwa ketika semua konten byte dari file dibaca, sumber daya ditutup terlepas dari apakah ada pengecualian IO atau pengecualian yang tidak dicentang lainnya. Ini berarti bahwa setelah membaca file ke konten blok terakhir, tidak perlu menutup file. Perhatikan bahwa metode ini tidak cocok untuk membaca file besar karena mungkin ada ruang memori yang tidak mencukupi. Pengembang juga harus menentukan pengkodean karakter file untuk menghindari pengecualian atau kesalahan penguraian.
Kode sumber metode readAllbytes (PATH):
<span style = "font-size: 32px;"> </span> <span style = "font-size: 18px;">/*** membaca semua byte dari file. Metode ini memastikan bahwa file tersebut * ditutup ketika semua byte telah dibaca atau kesalahan I/O, atau runtime lainnya * pengecualian, dilemparkan. * Perhatikan bahwa metode ini dimaksudkan untuk kasus -kasus sederhana di mana ia * nyaman untuk membaca semua byte ke dalam array byte. Ini tidak dimaksudkan untuk * membaca dalam file besar. * * @param path * the path to the file * * @return a byte array containing the bytes read from the file * * @throws IOException * if an I/O error occurs reading from the stream * If greater than 2G of the file, a memory overflow exception will be thrown* @throws OutOfMemoryError * if an array of the required size cannot be allocated, for * example the file is larger that {@code 2GB} * @throws SecurityException * Dalam kasus penyedia default, dan manajer keamanan * diinstal, metode {@link SecurityManager#checkRead (String) checkRead} * dipanggil untuk memeriksa akses baca ke file. */</span> <span style = "font-size: 18px;"> public static byte [] readAllbytes (path path) melempar ioException {try (SeekableByTechannel sbc = file.newbytechannel (Path); inputStream in = channels.newinputstream (sbc)) {/SBC (sbc) {/SBRC) {/SBC (SBC)) {SBRC) {SBRC) {SBC (SBC) (SBC) { sbc.size (); if (size> (long) max_buffer_size) melempar outofmemoryError baru ("ukuran array yang diperlukan terlalu besar"); return baca (in, (int) size); }} </span>Hanya satu baris file yang dibaca
Paket entrynio; impor java.io.ioException; impor java.nio.file.files; impor java.nio.file.paths; BUFFERAndChannel kelas publik {public static void main (string [] args) {try {System.out.println (string baru (file.readallbytes (paths.get ("c: //filechannelimpl.java"))))); } catch (ioException e) {e.printstacktrace (); }}}Kode Sumber Metode ReadAllines
Daftar statis publik <string> readAllLines (path path, charset cs) melempar ioException {try (bufferedReader reader = newBufferedReader (path, cs)) {list <string> hasil = arraylist baru <> (); untuk (;;) {string line = reader.readline (); if (line == null) break; result.add (baris); } hasil pengembalian; }} Paket entrynio; impor java.util.list; impor java.io.ioException; impor java.nio.charset.standardcharsets; impor java.nio.file.files; impor java.nio.file.paths; BUFFERAndChannel kelas publik {public static void main (string [] args) {// Jika itu adalah file teks, Anda juga dapat membacanya seperti ini. Panggil metode ReadAllLines Coba {<span style = "White-space: Pre"> </span> // Parameter kedua dapat dihilangkan setelah JDK1.8. Daftar pengkodean UTF-8 default <string> lines = file.readAlllines (paths.get ("c: //filechannelimpl.java"), standardcharsets.utf_8); StringBuilder SB = StringBuilder baru (); untuk (garis string: baris) {sb.append (line+"/n"); ///r/n newline} string fromFile = sb.toString (); System.out.println (Fromfile); } catch (ioException e) {e.printstacktrace (); }}}Cara menggunakan stream java8:
Pertama lihat implementasi kode sumber
Public Static Stream <String> Lines (Path Path) melempar IoException {return lines (Path, StandardCharsets.Utf_8); } Paket entrynio; impor java.io.ioException; impor java.nio.file.files; impor java.nio.file.paths; BUFFERADCHANNEL CLASS PUBLIK {public static void main (string [] args) {// java8 menambahkan metode baris coba {// java8 menggunakan streaming untuk membaca file, membuatnya lebih efisien file. sans-serif; ">" c: //filechannelimpl.java "</span>)). foreach (System.out :: println); } catch (ioException e) {e.printstacktrace (); }}}Hanya satu baris yang diperlukan untuk membaca file dan menulis file.
Paket entrynio; impor java.util.arrays; impor java.util.list; impor java.io.ioException; impor java.nio.file.files; impor java.nio.file.paths; impor java.nio.file.standardopenoption; BUFFERAndChannel kelas publik {public static void main (string [] args) {// java8 menambahkan lines metode string filePath = "c: //filechannelimpl.java"; coba {// java8 membaca file dalam aliran, yang lebih efisien/*file.lines (paths.get (filePath)). foreach ((line)-> {try {file.write (paths.get ("// 1.java"), line.getbytes (), standardopenoption ("/.files), line. E.PrintStackTrace ();}}); * / /* File. memperluas charsequence> type * * file.write (path path, iterable <? extends charsequence> lines, OpenOption ... opsi) */ list <string> stringstream = file.readAlllines (paths.get (filepath)); // Karena file.lines (path path) Mengembalikan stream <string>, Anda dapat menggunakan metode berikut untuk menjadi daftar <string> // daftar <string> stringstream2 = arrays.aslist ((string []) file.lines (paths.get (filepath)). Toarray ()); // StandardopenOption adalah kelas enumerasi. Jika file saat ini paths.get () tidak ada, parameter ketiga dapat dipilih sebagai StandardopenOption.create_new // Jika ada file, lempar java.nio.file.filealreadyexistsException exception file.write (paths.get ("c: //2.java"), stringstream, standeropenpenope ("c: //2.java"), stringstream, standeropenopen. } catch (ioException e) {e.printstacktrace (); }}}Artikel di atas JDK1.7 java.nio.file.file hanya membutuhkan satu baris kode untuk mewujudkan file di atas. Ini semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.