Lớp FileWriter
(Class FileWriter)

Lớp FileWriter là một lớp tiện ích đơn giản để ghi dữ liệu ký tự vào một tập tin. Nó kế thừa từ OutputStreamWriter và sử dụng bảng mã mặc định của hệ thống để mã hóa dữ liệu.

Lớp FileWriter sử dụng bảng mã mặc định của hệ thống (system default charset) để mã hóa dữ liệu khi ghi vào tệp. Điều này có nghĩa là khi bạn ghi văn bản vào một tệp bằng FileWriter, các ký tự sẽ được chuyển đổi thành một chuỗi byte theo bảng mã mặc định của hệ thống mà bạn đang sử dụng.

Khai báo lớp FileWriter trong Java

Để sử dụng lớp FileWriter, bạn cần import gói java.io bạn cần thêm câu lệnh import vào đầu file Java của mình. Gói này cung cấp các lớp và giao diện để thực hiện các hoạt động nhập xuất (I/O) trong Java.

Cú pháp câu lệnh import:

Cú pháp

import java.io.FileWriter;

Cú pháp khai báo lớp FileWriter:

Cú pháp

public class FileWriter
extends OutputStreamWriter

Dưới đây là giải thích chi tiết về cú pháp khai báo này:

↳ public class FileWriter: Đây là khai báo một lớp công khai (public) tên là FileWriter. Lớp này có thể được truy cập từ bất kỳ đâu trong dự án Java, miễn là nó được import hoặc ở cùng gói.

↳ extends OutputStreamWriter: Lớp FileWriter kế thừa (extends) OutputStreamWriter, điều đó có nghĩa là FileWriter kế thừa tất cả các phương thức và thuộc tính của OutputStreamWriter. Bên cạnh đó, FileWriter cũng có thể thêm các phương thức và chức năng riêng để ghi dữ liệu vào tệp tin.

Các Constructor của lớp FileWriter

Lớp FileWriter cung cấp 5 constructor để tạo đối tượng và mở kết nối đến một file để ghi dữ liệu ký tự:

↳ FileWriter(File file): Tạo một luồng đầu ra để ghi vào file được đại diện bởi đối tượng File. Dữ liệu sẽ ghi đè lên nội dung cũ của file.

↳ FileWriter(File file, boolean append): Tạo một luồng đầu ra để ghi vào file được đại diện bởi đối tượng File. Nếu append là true, dữ liệu sẽ được ghi thêm vào cuối file, ngược lại sẽ ghi đè lên nội dung cũ.

↳ FileWriter(FileDescriptor fd): Tạo một luồng đầu ra sử dụng một FileDescriptor đã tồn tại, đại diện cho một kết nối đến file trong hệ thống file.

↳ FileWriter(String name): Tạo một luồng đầu ra để ghi vào file có tên là name. Dữ liệu sẽ ghi đè lên nội dung cũ của file.

↳ FileWriter(String name, boolean append): Tạo một luồng đầu ra để ghi vào file có tên là name. Nếu append là true, dữ liệu sẽ được ghi thêm vào cuối file, ngược lại sẽ ghi đè lên nội dung cũ.

Ví dụ

Dưới đây là một ví dụ về cách sử dụng FileWriter để ghi dữ liệu vào một tệp tin trong Java:

Giả sử bạn muốn tạo một tệp tin có tên Example.txt và ghi một vài dòng văn bản vào đó.

Ví dụ: Example.java

import java.io.FileWriter;
import java.io.IOException;

public class Example {
    public static void main(String[] args) {
        String filePath = "example.txt"; // Đường dẫn tới tệp tin cần ghi

        try (FileWriter writer = new FileWriter(filePath)) {
            // Ghi các dòng văn bản vào tệp tin
            writer.write("Xin chào thế giới!\n");
            writer.write("Đây là một tệp mẫu.\n");
            writer.write("Tệp này chứa nhiều dòng văn bản.\n");
        } catch (IOException e) {
            e.printStackTrace(); // Xử lý ngoại lệ nếu có lỗi xảy ra
        }

        System.out.println("Dữ liệu đã được ghi vào tệp thành công.");
    }
}

Khi chương trình chạy thành công, tệp example.txt sẽ chứa nội dung như sau:

Xin chào thế giới!
Đây là một tệp mẫu.
Tệp này chứa nhiều dòng văn bản.

Ví dụ này minh họa cách sử dụng FileWriter để ghi văn bản vào một tệp tin trong Java. FileWriter rất hữu ích khi bạn cần tạo và ghi dữ liệu vào các tệp văn bản trong các ứng dụng Java của mình.

Một số điểm lưu ý:

↳ Tạo tệp mới: Nếu tệp tin mà bạn chỉ định trong FileWriter chưa tồn tại, FileWriter sẽ tạo tệp mới để ghi dữ liệu vào đó.

↳ Ghi đè nội dung cũ: Nếu tệp tin đã tồn tại, FileWriter sẽ mở tệp và ghi đè toàn bộ nội dung cũ của tệp bằng dữ liệu mới bạn cung cấp. Nội dung cũ của tệp sẽ bị mất.

↳ Nếu bạn muốn ghi tiếp vào cuối tệp hiện tại mà không ghi đè nội dung cũ, bạn cần sử dụng tham số true trong constructor của FileWriter để mở tệp ở chế độ append:

Ví dụ: Example.java

import java.io.FileWriter;
import java.io.IOException;

public class Example {
    public static void main(String[] args) {
        String filePath = "example.txt"; // Đường dẫn tới tệp tin cần ghi

        // Ghi tiếp vào tệp, không ghi đè nội dung cũ
        try (FileWriter writer = new FileWriter(filePath, true)) {
            writer.write("Nội dung này sẽ được thêm vào cuối tập tin.");
        } catch (IOException e) {
            e.printStackTrace(); // Xử lý ngoại lệ nếu có lỗi xảy ra
        }

        System.out.println("Dữ liệu đã được ghi vào tệp, nội dung cũ vẫn được giữ nguyên.");
    }
}

Khi chương trình chạy thành công, tệp example.txt sẽ chứa nội dung như sau:

Xin chào thế giới!
Đây là một tệp mẫu.
Tệp này chứa nhiều dòng văn bản.
Nội dung này sẽ được thêm vào cuối tập tin.

Việc chọn phương thức phù hợp sẽ giúp bạn quản lý và ghi dữ liệu vào các tệp tin theo cách mà bạn muốn.

Câu Nói Truyền Cảm Hứng

“Bắt đầu ở đâu không quan trọng, quan trọng là bạn sẵn sàng bắt đầu.” – W. Clement Stone

Không Gian Tích Cực

“Chúc bạn luôn giữ vững niềm tin và sức mạnh để vượt qua mọi thử thách trong cuộc sống.”