Lớp InputStreamReader trong java – Ví dụ mẫu

Tìm hiểu về các constructor, một số phương thức cơ bản và ví dụ về InputStreamReader trong java giúp đọc dữ liệu đầu vào.

Xem thêm:

Giới thiệu

InputStreamReader là một lớp trong Java nằm trong gói java.io. Nó được sử dụng để đọc dữ liệu dạng ký tự từ các luồng đầu vào, chuyển đổi byte thành ký tự sử dụng một bảng mã ký tự được chỉ định. Lớp này thường được sử dụng để kết nối giữa các luồng dữ liệu byte và các đối tượng đọc ký tự.

Constructor

  • InputStreamReader(InputStream in): Tạo bằng cách sử dụng bảng mã ký tự mặc định của hệ thống.
  • InputStreamReader(InputStream in, Charset cs): Tạo một InputStreamReader sử dụng Charset cụ thể để mã hóa ký tự.
  • InputStreamReader(InputStream in, CharsetDecoder dec): Tạo một InputStreamReader sử dụng CharsetDecoder cụ thể để mã hóa ký tự. CharsetDecoder chịu trách nhiệm chuyển đổi byte thành ký tự.
  • InputStreamReader(InputStream in, String charsetName): Tạo một InputStreamReader sử dụng bảng mã ký tự được chỉ định bởi tên charset. Tên charset cần phải là một bảng mã hợp lệ được hệ thống nhận diện.

Một số phương thức InputStreamReader trong Java

  • void close(): Đóng luồng và giải phóng bất kỳ tài nguyên hệ thống nào được liên kết với nó.
  • String getEncoding(): Trả về tên của bảng mã ký tự đang được sử dụng bởi luồng này.
  • int read(): Đọc một ký tự duy nhất.
  • int read(char[] cbuf, int offset, int length): Đọc các ký tự vào một phần của một mảng.
  • boolean ready(): Cho biết xem luồng này có sẵn sàng để đọc hay không.

Ví dụ InputStreamReader trong java

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

public class InputStreamReaderExample {

    public static void main(String[] args) {
        try {
            //Tao mot inputStream
            InputStream inputStream = new FileInputStream("D:\\ttnguyen.txt");

            //Tao mot InputStramReader su dung bang ma mac dinh
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

            // Su dung phuong thuc ready de kiem tra xem luong co san sang khong
            boolean isReady = inputStreamReader.ready();
            System.out.println("Status: " + isReady);
            
            //Su dung read de doc mot ky tu duy nhat
            int singleChar = inputStreamReader.read();
            System.out.println("Doc mot ky tu: " + (char) singleChar);

            //Su dung phuong thuc read de doc cac ky tu vao mot mang
            char[] arr = new char[255];
            int byte_read = inputStreamReader.read(arr, 0, 255);
            System.out.println("Doc mang: ");
            for (int i = 0; i < byte_read; i++) {
                System.out.print(arr[i]);
            }
            System.out.println("");

            //Dong 
            inputStream.close();
            inputStreamReader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Hy vọng những thông tin trên sẽ giúp bạn có thêm kiến thức về InputStreamReader và cách đọc dữ liệu từ luồng đầu vào. Cảm ơn bạn đã tham khảo bài tập lập trình hướng đối tượng java trên ttnguyen.net.

Bài viết liên quan:

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em