Dalam tutorial ini, kita akan belajar tentang Java InputStreamReader dan metodenya dengan bantuan contoh.
The InputStreamReader
kelas dari java.io
paket dapat digunakan untuk mengkonversi data dalam byte menjadi data dalam karakter.
Ini memperluas kelas abstrak Reader
.
The InputStreamReader
kelas bekerja dengan aliran masukan lainnya. Ia juga dikenal sebagai jembatan antara aliran byte dan aliran karakter. Ini karena InputStreamReader
byte membaca dari aliran input sebagai karakter.
Misalnya, beberapa karakter memerlukan 2 byte untuk disimpan di penyimpanan. Untuk membaca data tersebut, kita dapat menggunakan pembaca aliran input yang membaca 2 byte bersama-sama dan mengubahnya menjadi karakter yang sesuai.
Buat InputStreamReader
Untuk membuat InputStreamReader
, kita harus mengimpor java.io.InputStreamReader
paketnya terlebih dahulu. Setelah kami mengimpor paket di sini adalah bagaimana kami dapat membuat pembaca aliran input.
// Creates an InputStream FileInputStream file = new FileInputStream(String path); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file);
Dalam contoh di atas, kami telah membuat InputStreamReader
input bernama bersama dengan FileInputStream
file bernama.
Di sini, data dalam file disimpan menggunakan beberapa pengkodean karakter default.
Namun, kami juga dapat menentukan jenis pengkodean karakter ( UTF8 atau UTF16 ) di file.
// Creates an InputStreamReader specifying the character encoding InputStreamReader input = new InputStreamReader(file, Charset cs);
Di sini, kami telah menggunakan Charset
kelas untuk menentukan pengkodean karakter dalam file.
Metode InputStreamReader
The InputStreamReader
kelas menyediakan implementasi untuk metode yang berbeda hadir di Reader
kelas.
read () Metode
read()
- membaca satu karakter dari pembacaread(char() array)
- membaca karakter dari pembaca dan menyimpannya dalam larik yang ditentukanread(char() array, int start, int length)
- membaca jumlah karakter yang sama dengan panjang dari pembaca dan menyimpan dalam larik yang ditentukan mulai dari awal
Misalnya, kita memiliki file bernama input.txt dengan konten berikut.
This is a line of text inside the file.
Mari kita coba membaca file ini menggunakan InputStreamReader
.
import java.io.InputStreamReader; import java.io.FileInputStream; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file); // Reads characters from the file input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Keluaran
Data dalam aliran: Ini adalah baris teks di dalam file.
Dalam contoh di atas, kami telah membuat pembaca aliran input menggunakan aliran input file. Pembaca input stream ditautkan dengan file input.txt .
FileInputStream file = new FileInputStream("input.txt"); InputStreamReader input = new InputStreamReader(file);
Untuk membaca karakter dari file, kami telah menggunakan read()
metode ini.
Metode getEncoding ()
The getEncoding()
metode dapat digunakan untuk mendapatkan jenis encoding yang digunakan untuk menyimpan data di input stream. Sebagai contoh,
import java.io.InputStreamReader; import java.nio.charset.Charset; import java.io.FileInputStream; class Main ( public static void main(String() args) ( try ( // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader with default encoding InputStreamReader input1 = new InputStreamReader(file); // Creates an InputStreamReader specifying the encoding InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8")); // Returns the character encoding of the input stream System.out.println("Character encoding of input1: " + input1.getEncoding()); System.out.println("Character encoding of input2: " + input2.getEncoding()); // Closes the reader input1.close(); input2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Keluaran
Pengkodean karakter input1: Cp1252 Pengkodean karakter input2: UTF8
Dalam contoh di atas, kami telah membuat 2 pembaca aliran input bernama input1 dan input2.
- input1 tidak menentukan pengkodean karakter. Karenanya
getEncoding()
metode ini mengembalikan nama kanonik dari pengkodean karakter default. - input2 menentukan pengkodean karakter, UTF8 . Karenanya
getEncoding()
metode mengembalikan pengkodean karakter yang ditentukan.
Catatan : Kami telah menggunakan Charset.forName()
metode untuk menentukan tipe pengkodean karakter. Untuk mempelajari lebih lanjut, kunjungi Java Charset (dokumentasi resmi Java).
close () Metode
Untuk menutup pembaca aliran input, kita dapat menggunakan close()
metode. Setelah close()
metode dipanggil, kita tidak dapat menggunakan pembaca untuk membaca data.
Metode lain dari InputStreamReader
metode | Deskripsi |
---|---|
ready() | memeriksa apakah aliran siap untuk dibaca |
mark() | tandai posisi dalam aliran yang datanya telah dibaca |
reset() | mengembalikan kontrol ke titik di aliran tempat tanda ditetapkan |
Untuk mempelajari lebih lanjut, kunjungi Java InputStreamReader (dokumentasi resmi Java).