java
Dalam tutorial ini, kita akan belajar tentang Java InputStreamReader dan metodenya dengan bantuan contoh.
InputStreamReader
kelas java.io
package dapat digunakan untuk mengubah data dalam byte menjadi data dalam karakter.
Ini memperluas kelas abstrak Reader
.
InputStreamReader
kelas bekerja dengan aliran input lainnya. Ini juga dikenal sebagai jembatan antara aliran byte dan aliran karakter. Ini karena InputStreamReader
membaca byte dari aliran input sebagai karakter.
Misalnya, beberapa karakter membutuhkan 2 byte untuk disimpan di penyimpanan. Untuk membaca data tersebut, kita dapat menggunakan pembaca aliran input yang membaca 2 byte secara bersamaan dan mengubahnya menjadi karakter yang sesuai.
Untuk membuat InputStreamReader
, kita harus mengimpor java.io.InputStreamReader
paket dulu. Setelah kami mengimpor paket, inilah cara kami membuat pembaca aliran input.
// Creates an InputStream
FileInputStream file = new FileInputStream(String path);
// Creates an InputStreamReader
InputStreamReader input = new InputStreamReader(file);
Pada contoh di atas, kita telah membuat InputStreamReader
bernama input bersama dengan FileInputStream
bernama file .
Di sini, data dalam file disimpan menggunakan beberapa pengkodean karakter default.
Namun, kita dapat menentukan jenis pengkodean karakter (UTF8 atau UTF16 ) dalam file juga.
// Creates an InputStreamReader specifying the character encoding
InputStreamReader input = new InputStreamReader(file, Charset cs);
Di sini, kami telah menggunakan Charset
class untuk menentukan pengkodean karakter dalam file.
InputStreamReader
class menyediakan implementasi untuk berbagai metode yang ada di Reader
kelas.
read()
- membaca satu karakter dari pembacaread(char[] array)
- membaca karakter dari pembaca dan menyimpan 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 start
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 in the stream: This is a line of text inside the file.
Dalam contoh di atas, kami telah membuat pembaca aliran input menggunakan aliran input file. Pembaca aliran input 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.
getEncoding()
metode dapat digunakan untuk mendapatkan jenis pengkodean yang digunakan untuk menyimpan data dalam aliran input. Misalnya,
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
The character encoding of input1: Cp1252 The character encoding of input2: UTF8
Pada contoh di atas, kami telah membuat 2 pembaca aliran input bernama input1 dan input2 .
getEncoding()
metode mengembalikan nama kanonik dari pengkodean karakter default.getEncoding()
metode mengembalikan pengkodean karakter yang ditentukan.
Catatan :Kami telah menggunakan Charset.forName()
metode untuk menentukan jenis pengkodean karakter. Untuk mempelajari lebih lanjut, kunjungi Java Charset (dokumentasi resmi Java).
Untuk menutup pembaca aliran input, kita dapat menggunakan close()
metode. Setelah close()
dipanggil, kita tidak dapat menggunakan pembaca untuk membaca data.
Metode | Deskripsi |
---|---|
ready() | memeriksa apakah streaming siap dibaca |
mark() | menandai posisi dalam aliran hingga data yang telah dibaca |
reset() | mengembalikan kontrol ke titik di aliran tempat tanda ditetapkan |
Untuk mempelajari lebih lanjut, kunjungi Java InputStreamReader (dokumentasi resmi Java).
java
Kelas Java BufferedInputStream Dalam tutorial ini, kita akan belajar tentang Java BufferedInputStream dan metodenya dengan bantuan contoh. BufferedInputStream kelas java.io package digunakan dengan aliran input lain untuk membaca data (dalam byte) dengan lebih efisien. Ini memperluas InputStream k
Kelas Java BufferedOutputStream Dalam tutorial ini, kita akan belajar tentang Java BufferedOutputStream dan metodenya dengan bantuan contoh. BufferedOutputStream kelas java.io package digunakan dengan aliran keluaran lain untuk menulis data (dalam byte) dengan lebih efisien. Ini memperluas OutputS
Kelas Java PrintStream Dalam tutorial ini, kita akan belajar tentang kelas Java PrintStream dan metode print() dan printf() dengan bantuan contoh. PrintStream kelas java.io package dapat digunakan untuk menulis data keluaran dalam bentuk (teks) yang dapat dibaca secara umum alih-alih byte. Ini mem
Kelas Pembaca Java Dalam tutorial ini, kita akan belajar tentang Java Reader, subclass-nya dan metodenya dengan bantuan sebuah contoh. Reader kelas java.io package adalah superclass abstrak yang mewakili aliran karakter. Sejak Reader adalah kelas abstrak, itu tidak berguna dengan sendirinya. Namun