Java FileReader (Có ví dụ)

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Java FileReader và các phương pháp của nó với sự trợ giúp của các ví dụ.

Các FileReaderlớp của java.iogói có thể được sử dụng để đọc dữ liệu (bằng ký tự) từ các tập tin.

Nó mở rộng InputSreamReaderlớp học.

Trước khi tìm hiểu FileReader, hãy đảm bảo rằng bạn biết về Tệp Java.

Tạo một FileReader

Để tạo trình đọc tệp, java.io.FileReadertrước tiên chúng ta phải nhập gói. Sau khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo trình đọc tệp.

1. Sử dụng tên của tệp

 FileReader input = new FileReader(String name); 

Ở đây, chúng tôi đã tạo một trình đọc tệp sẽ được liên kết với tệp được chỉ định bởi tên.

2. Sử dụng một đối tượng của tệp

 FileReader input = new FileReader(File fileObj); 

Ở đây, chúng tôi đã tạo một trình đọc tệp sẽ được liên kết với tệp được chỉ định bởi đối tượng của tệp.

Trong ví dụ trên, dữ liệu trong tệp được lưu trữ bằng một số mã hóa ký tự mặc định.

Tuy nhiên, kể từ Java 11, chúng ta cũng có thể chỉ định kiểu mã hóa ký tự ( UTF-8 hoặc UTF-16 ) trong tệp.

 FileReader input = new FileReader(String file, Charset cs); 

Ở đây, chúng tôi đã sử dụng Charsetlớp để chỉ định mã hóa ký tự của trình đọc tệp.

Phương thức của FileReader

Các FileReaderlớp học cung cấp triển khai cho các phương pháp khác nhau trình bày trong Readerlớp.

phương thức read ()

  • read() - đọc một ký tự duy nhất từ ​​trình đọc
  • read(char() array) - đọc các ký tự từ trình đọc và lưu trữ trong mảng được chỉ định
  • read(char() array, int start, int length) - đọc số lượng ký tự bằng độ dài từ trình đọc và lưu trữ trong mảng được chỉ định bắt đầu từ vị trí bắt đầu

Ví dụ, giả sử chúng ta có một tệp tên input.txt với nội dung như sau.

 This is a line of text inside the file. 

Hãy thử đọc tệp bằng cách sử dụng FileReader.

 import java.io.FileReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a reader using the FileReader FileReader input = new FileReader("input.txt"); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Đầu ra

 Dữ liệu trong tệp: Đây là một dòng văn bản bên trong tệp. 

Trong ví dụ trên, chúng tôi đã tạo một trình đọc tệp có tên là đầu vào. Trình đọc tệp được liên kết với tệp input.txt .

 FileInputStream input = new FileInputStream("input.txt"); 

Để đọc dữ liệu từ tệp, chúng tôi đã sử dụng read()phương pháp.

Phương thức getEncoding ()

Các getEncoding()phương pháp có thể được sử dụng để có được các loại mã hóa được sử dụng để lưu trữ dữ liệu trong file. Ví dụ,

 import java.io.FileReader; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( try ( // Creates a FileReader with default encoding FileReader input1 = new FileReader("input.txt"); // Creates a FileReader specifying the encoding FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); // Returns the character encoding of the file reader 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(); ) ) ) 

Đầu ra

 Mã hóa ký tự của đầu vào1: Cp1252 Mã hóa ký tự của đầu vào2: UTF8 

Trong ví dụ trên, chúng ta đã tạo 2 trình đọc tệp tên là input1 và input2.

  • input1 không chỉ định mã hóa ký tự. Do đó, getEncoding()phương thức trả về mã hóa ký tự mặc định.
  • input2 chỉ định mã hóa ký tự, UTF8 . Do đó, getEncoding()phương thức trả về mã hóa ký tự được chỉ định.

Lưu ý : Chúng tôi đã sử dụng Charset.forName()phương pháp để chỉ định loại mã hóa ký tự. Để tìm hiểu thêm, hãy truy cập Java Charset (tài liệu Java chính thức).

phương thức close ()

Để đóng trình đọc tệp, chúng ta có thể sử dụng close()phương pháp. Khi close()phương thức được gọi, chúng ta không thể sử dụng bộ đọc để đọc dữ liệu.

Các phương pháp khác của FileReader

phương pháp Sự miêu tả
ready() kiểm tra xem trình đọc tệp đã sẵn sàng để đọc chưa
mark() đánh dấu vị trí trong trình đọc tệp cho đến khi dữ liệu đã được đọc
reset() trả điều khiển đến điểm trong đầu đọc nơi đánh dấu được đặt

Để tìm hiểu thêm, hãy truy cập Java FileReader (tài liệu Java chính thức).

thú vị bài viết...