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 FileReader
lớp của java.io
gó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 InputSreamReader
lớ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 một trình đọc tệp, java.io.FileReader
trướ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 cách sử dụng một số mã hóa ký tự mặc định.
Tuy nhiên, kể từ Java 11, chúng tôi 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 Charset
lớp để chỉ định mã hóa ký tự của trình đọc tệp.
Phương thức của FileReader
Các FileReader
lớp học cung cấp triển khai cho các phương pháp khác nhau trình bày trong Reader
lớp.
phương thức read ()
read()
– reads a single character from the readerread(char[] array)
– reads the characters from the reader and stores in the specified arrayread(char[] array, int start, int length)
– reads the number of characters equal to length from the reader and stores in the specified array starting from the position start
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
Data in the file: This is a line of text inside the file.
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
The character encoding of input1: Cp1252 The character encoding of input2: UTF8
Trong ví dụ trên, chúng ta đã tạo 2 trình đọc tệp có tên là input1 và input2 .
- input1 does not specify the character encoding. Hence the
getEncoding()
method returns the default character encoding. - input2 specifies the character encoding, UTF8. Hence the
getEncoding()
method returns the specified character encoding.
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 trình đọc để đọc dữ liệu.
Các phương pháp khác của FileReader
Method | Decfscription |
---|---|
ready() | checks if the file reader is ready to be read |
mark() | mark the position in file reader up to which data has been read |
reset() | returns the control to the point in the reader where the mark was set |
Để tìm hiểu thêm, hãy truy cập Java FileReader (tài liệu Java chính thức) .