Đọc file với FileInputStream trong java

FileInputStream dùng để đọc dữ liệu từ một file ở dạng chuỗi byte. FileInputStream thường để đọc các luồng dữ liệu thô như là hình ảnh etc.

Khởi tạo FileInputStream

  • FileInputStream(File file) :Khởi tạo FileInputStream từ một file instance.
  • FileInputStream(FileDescriptor fdobj) Khởi tạo FileInputStream từ FileDescriptor.
  • FileInputStream(String name) :Khởi tạo FileInputStream từ File theo đường dẫn được chỉ định.

Các method trong FileInputStream

int read()

Đọc dữ liệu từ FileInputStream theo từng byte, nghĩa là mỗi lần đọc chỉ đọc được 1 byte. 

int read(byte[] b)

Đọc dữ từ FileInputStream vào mảng byte được cung cấp. read(byte[] b) sẽ cố gắng đọc nhiều byte nhất vào mảng dựa theo b.length. Nếu sức chứa của b nhiều hơn số byte từ FileInputStream thì phần rỗng còn lại sẽ được lặp lại giống như phần đầu của b cho đến hết mảng. 

read(byte[], int off, int len)

Đọc dữ từ FileInputStream vào mảng byte được cung cấp. read(byte[] b) sẽ cố gắng đọc nhiều byte nhất vào mảng dựa theo b.length. Vị trí đọc sẽ bắt đầu từ off và đọc tối đa len byte.

long skip(long n)

Bỏ qua và loại bỏ n byte từ FileInputStream.

int available()

Trả về số lượng byte còn lại có thể đọc được

void close()

Đóng kết nối của FileInputStream với các tài nguyên mà nó đang tham chiếu đến.

FileDescriptor getFD()

Trả về một FileDescriptor object của tài nguyên đang được FileInputStream kết nối đến.

FileChannel getChannel()

Trả về FileChannel object duy nhất được liên kết với FileInputStream.

void finalize()

Đảm bảo rằng close() method được gọi và FileInputStream không còn tham chiếu đến tài nguyên nào.

Các bước đọc dữ liệu từ FileInputStream

Để đọc dữ liệu từ FileInputStream 

B1: Khởi tạo FileInputStream với file mà chúng cần liên kết

B2: Đọc dữ liệu, chúng ta có thể sử dụng các method read() được nêu ở trên.

Ví dụ FileInputStream

Output:

[email protected] [email protected] Number of remaining bytes:45 FileContents : is my first line This is my second line

Note: BufferedInputStream có thể đọc tất cả các dữ liệu một lần vào buffer, việc này sẽ tăng tốc độ xử lý file cho bạn.

Nguồn tham khảo:

https://www.geeksforgeeks.org/java-io-fileinputstream-class-java/

Leave a Reply

Your email address will not be published. Required fields are marked *