Trong bài viết này, chúng ta sẽ cùng tìm hiểu về lớp PrintWriter trong Java và các phương thức print() và printf() của nó cùng với các ví dụ dẫn chứng.
Lớp PrintWriter
Lớp PrintWriter của gói java.io có thể được sử dụng để ghi dữ liệu đầu ra ở dạng văn bản. Nó kế thừa từ lớp trừu tượng Writer.
Cách thức Hoạt động của PrintWriter
Không giống như các trình ghi dữ liệu khác, PrintWriter chuyển đổi dữ liệu dạng căn bản như int, float, char, thành định dạng văn bản. Sau đó, nó ghi dữ liệu đã định dạng cho trình ghi dữ liệu. Ngoài ra, lớp PrintWriter không đưa ra bất kỳ ngoại lệ đầu vào hoặc đầu ra nào. Thay vào đó, chúng ta cần sử dụng phương thức checkError() để tìm bất kỳ lỗi nào tồn tại bên trong.
Chú ý: Lớp PrintWriter cũng có tính năng tự động xóa sạch. Điều này có nghĩa là nó buộc trình ghi dữ liệu sẽ phải ghi tất cả dữ liệu vào điểm đích nếu một trong các phương thức println() hoặc printf() được gọi.
Tạo một PrintWriter
Để tạo PrintWriter, trước tiên chúng ta phải thêm gói java.io.PrintWriter. Sau khi thêm, sau đây là hai cách mà chúng ta có thể tạo PrintWriter.
1. Sử dụng các trình ghi dữ liệu khác
1 2 |
FileWriter file = new FileWriter("tek4.txt"); PrintWriter output = new PrintWriter(file, autoFlush); |
Trong đó:
- Chúng ta đã tạo một PrintWriter sẽ ghi dữ liệu vào tệp được biểu diễn bởi FileWriter.
- autoFlush là một tham số tùy chọn chỉ định có thực hiện việc làm sạch tự động hay không.
2. Sử dụng các luồng in đầu ra
1 2 |
FileOutputStream file = new FileOutputStream("tek4.txt"); PrintWriter output = new PrintWriter(file, autoFlush); |
Trong đó:
- Chúng ta đã tạo một PrintWriter sẽ ghi dữ liệu vào tệp được biểu diễn bởi FileOutputStream.
- autoFlush là một tham số tùy chọn chỉ định có thực hiện tính năng tự động làm sạch hay không.
3. Sử dụng tên tệp
1 |
PrintWriter output = new PrintWriter (String path, boolean autoFlush); |
Trong đó:
- Chúng ta đã tạo một PrintWriter sẽ ghi dữ liệu vào tệp được chỉ định.
- autoFlush là một tham số boolean tùy chọn chỉ định có thực hiện tính năng tự động làm sạch hay không.
Chú ý: Trong tất cả các trường hợp trên, PrintWriter sẽ ghi dữ liệu vào tệp bằng cách sử dụng một kiểu mã hóa ký tự mặc định. Tuy nhiên, chúng ta cũng có thể chỉ định kiểu mã hóa ký tự tùy chọn (UTF8 hoặc UTF16).
1 |
PrintWriter output = new PrintWriter(String path, boolean autoFlush, Charset cs); |
Ở đây, chúng ta đã sử dụng lớp Charset để chỉ định kiểu mã hóa ký tự.
Các phương thức của PrintWriter
Lớp PrintWriter cung cấp nhiều phương thức khác nhau cho phép chúng ta in dữ liệu cho đầu ra.
- Phương thức print(): In dữ liệu được chỉ định.
- Phương thức println(): In dữ liệu cùng với một ký tự xuống dòng mới ở cuối dữ liệu.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.io.PrintWriter; class Main { public static void main(String[] args) { String du_lieu = "Lap trinh Java can ban"; try { PrintWriter output = new PrintWriter("tek4.txt"); output.print(du_lieu); output.close(); } catch(Exception e) { e.getStackTrace(); } } } |
Kết quả tron tệp tek4.txt như sau:
1 |
Lap trinh Java can ban |
Trong ví dụ trên, chúng ta đã tạo một PrintWriter có tên là output. PrintWriter sẽ được liên kết với tệp tek4.txt.
1 |
PrintWriter output = new PrintWriter("tek4.txt"); |
Để in dữ liệu ra tệp, chúng ta đã sử dụng phương thức print(). Sau khi chạy chương trình, tệp tek4.txt sẽ chứa nội dung sau.
1 |
Lap trinh Java can ban |
- Phương thức printf(): Phương thức printf() có thể được sử dụng để in chuỗi ký tự đã được định dạng. Nó bao gồm 2 tham số: chuỗi ký tự cần định dạng và các đối số.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.io.PrintWriter; class Main { public static void main(String[] args) { try { PrintWriter output = new PrintWriter("tek4.txt"); String a = "cac ban"; output.printf("Xin chao %s", a); output.close(); } catch(Exception e) { e.getStackTrace(); } } } |
Kết quả trong tệp tek4.txt như sau:
1 |
Xin chao cac ban |
Trong ví dụ trên, chúng ta đã tạo một PrintWriter có tên là output. PrintWriter được liên kết với tệp tek4.txt.
1 |
PrintWriter output = new PrintWriter("tek4.txt"); |
Để in văn bản đã được định dạng vào tệp, chúng ta đã sử dụng phương thức printf(). Sau khi chạy chương trình, tệp tek4.txt chứa nội dung sau.
1 |
Xin chao cac ban |
Các phương thức khác
Phương thức | Mô tả |
close() | Đóng PrintWriter. |
checkError() | Trả về kết quả kiểu dữ liệu Boolean nếu có lỗi trong Writer. |
append() | Thêm dữ liệu được chỉ định vào trình ghi dữ liệu. |
Trên đây là khái niệm và ví dụ cơ bản về lớp PrintWriter trong Java. Hy vọng mọi người có thể áp dụng vào trong chương trình của mình. Mọi người hãy tiếp tục theo dõi các bài tiếp theo và cập nhật các bài mới nhất trên tek4 nhé!
P/s: Cảm ơn mọi người!