Saya ingat bahwa ketika saya pertama kali mulai belajar Java, saya tidak mengerti streaming Java IO, jadi saya menulis esai ini dan berharap itu akan sangat membantu bagi mereka yang baru saja mulai belajar Java dan memfasilitasi pertanyaan mereka di masa depan. Stream Java IO dibagi menjadi aliran karakter (pembaca, penulis) dan aliran byte (InputStream, OutputStream). Byte Stream, seperti namanya, aliran byte harus membaca konten file ke dalam array byte dan kemudian mengeluarkannya ke file lain. Unit terkecil dari operasi streaming karakter adalah karakter. Mari kita lihat ikhtisar aliran IO:
Berikut ini adalah hal pertama yang dibaca dan menulis file melalui aliran karakter:
Paket lib; import java.io.bufferedReader; import java.io.file; impor java.io.filenotfoundException; impor java.io.filereader; impor java.io.filewriter; impor java.io. File ("f: //test.txt"); // Metode untuk menulis stream karakter string publik writeInfile () melempar ioException {string str = ""; String count = ""; Coba {// Gunakan aliran karakter untuk membaca file bufferedReader bf = baru buferedReader (filereader baru (f)); while (true) {// Baca setiap baris data dan tetapkan ke str if ((count = bf.readline ())! = null) {str += count; } else {break; }} // tutup aliran bf.close (); } catch (FileNotFoundException e) {e.printstacktrace (); } return str; } // Metode untuk aliran karakter membaca public void getReader () {coba {// dimana benar berarti ditambahkan di akhir konten file asli. Jika tidak ditulis, itu berarti mengosongkan file dan menambahkan konten. Printwriter pw = printwriter baru (FileWriter baru (f, true)); pw.write ("tes string input ke file 2"); pw.close (); } catch (ioException e) {e.printstacktrace (); }} public static void main (string [] args) melempar ioException {test test = new test (); // Masukkan string ke dalam file test.getReader (); // Baca string string yang sesuai str = test.writeInfile (); // buka system.out.println ("Konten file:"+str); }}Ada komentar dalam poin -poin penting dari kode di atas, jadi saya tidak akan masuk ke detail satu per satu. Hal utama adalah Anda tidak lupa untuk ditutup setelah menggunakan stream.
Kemudian beroperasi pada file melalui aliran byte, menyalin konten satu file ke yang lain:
Paket com.file.test2; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; impor stasiun public. IoException {// file sumber yang akan disalin f = file baru ("d: //test.txt"); // file target f2 = file baru ("d: //test2.txt"); // Tentukan array tipe byte untuk menyimpan byte konten yang dibaca [] b = byte baru [1024]; panjang int; Coba {// Tentukan baca aliran fileInputStream di = new fileInputStream (f); // Tentukan output stream ke file fileoutputStream out = new fileoutputStream (f2); // output konten file ke file lain while ((length = in.read (b))! =-1) {out.write (b, 0, panjang); } out.close (); melampirkan(); } catch (FileNotFoundException e) {e.printstacktrace (); }}}Dalam pengoperasian aliran byte, file sumber pada baris 13 harus ada. Anda dapat mengubah jalur file sendiri sesuai kebutuhan. Anda hanya perlu ada. Kalau tidak, kesalahan yang tidak dapat ditemukan oleh file tersebut akan dilaporkan. Pada saat yang sama, jika Anda ingin mengeluarkan konten aliran byte baca pada konsol, Anda dapat menambahkan dua kode antara baris 27 dan 28: in.read (b, 0, b.length); system.out.println (string baru (b));
Di atas adalah operasi terkait aliran karakter dan aliran byte. Faktanya, kode ini tidak sulit, ini terutama tentang pemahamannya sendiri. Setiap orang akan memiliki cara berbeda untuk memahami masalah yang sama. Tentu saja, bagi kami programmer, selain berpikir lebih banyak, kami juga perlu melakukan lebih banyak. Akhirnya, saya berharap konten di atas akan membantu semua orang, dan terus mendukung situs ini.