Java FileWriter (Có Ví dụ)

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

Các FileWriterlớp của java.iogói có thể được sử dụng để ghi dữ liệu (bằng ký tự) vào file.

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

Trước khi bạn tìm hiểu thêm về FileWriter, hãy đảm bảo bạn đã biết về Java File.

Tạo một FileWriter

Để tạo một trình ghi tệp, Java.io.FileWritertrướ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 ghi tệp.

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

 FileWriter output = new FileWriter(String name); 

Ở đây, chúng tôi đã tạo một trình ghi 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

 FileWriter input = new FileWriter(File fileObj); 

Ở đây, chúng tôi đã tạo một trình ghi 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 đượ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ự ( UTF8 hoặc UTF16 ).

 FileWriter input = new FileWriter(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 ghi tệp.

Phương thức của FileWriter

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

viết phương pháp

  • write() - viết một ký tự cho nhà văn
  • write(char() array) - ghi các ký tự từ mảng được chỉ định vào trình viết
  • write(String data) - ghi chuỗi được chỉ định cho người viết

Ví dụ: FileWriter để ghi dữ liệu vào một tệp

 import java.io.FileWriter; public class Main ( public static void main(String args()) ( String data = "This is the data in the output file"; try ( // Creates a FileWriter FileWriter output = new FileWriter("output.txt"); // Writes the string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

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

 FileWriter output = new FileWriter("output.txt"); 

Để ghi dữ liệu vào tệp, chúng tôi đã sử dụng write()phương pháp.

Ở đây khi chúng ta chạy chương trình, tệp output.txt chứa nội dung sau.

 This is a line of text inside the file. 

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 để ghi dữ liệu. Ví dụ,

 import java.io.FileWriter; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( String file = "output.txt"; try ( // Creates a FileReader with default encoding FileWriter output1 = new FileWriter(file); // Creates a FileReader specifying the encoding FileWriter output2 = new FileWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the reader System.out.println("Character encoding of output1: " + output1.getEncoding()); System.out.println("Character encoding of output2: " + output2.getEncoding()); // Closes the reader output1.close(); output2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Đầu ra

 Mã hóa ký tự của đầu ra1: Cp1252 Mã hóa ký tự của đầu ra2: UTF8 

Trong ví dụ trên, chúng ta đã tạo 2 tập tin có tên là output1 và output2.

  • output1 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.
  • output2 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 ghi 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 viết để ghi dữ liệu.

Các phương thức khác của FileWriter

phương pháp Sự miêu tả
flush() buộc ghi tất cả dữ liệu có trong trình ghi vào đích tương ứng
append() chèn ký tự được chỉ định cho người viết hiện tại

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

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