Trong hướng dẫn này, chúng ta sẽ tìm hiểu về FileOutputStream trong Java và các phương thức của nó với sự trợ giúp của các ví dụ.
lớp FileOutputStream của gói java.io có thể được sử dụng để ghi dữ liệu (tính theo byte) để các tập tin.
Nó mở rộng lớp OutputStream trừu tượng.
Trước khi bạn tìm hiểu về FileOutputStream, hãy chắc chắn rằng bạn đã biết về Tệp Java .
Nội dung chính
1. Tạo một FileOutputStream
Để tạo luồng xuất tệp, trước tiên chúng ta phải nhập gói java.io.FileOutputStream. Khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo luồng xuất tệp trong Java.
1. Sử dụng đường dẫn đến tệp
// Including the boolean parameter
FileOutputStream output = new FileOutputStream(String path, boolean value);
// Not including the boolean parameter
FileOutputStream output = new FileOutputStream(String path);
Ở đây, chúng ta đã tạo một luồng đầu ra sẽ được liên kết với tệp được chỉ định bởi con đường.
Cũng thế, giá trị là một tham số boolean tùy chọn. Nếu nó được đặt thành true, dữ liệu mới sẽ được nối vào cuối dữ liệu hiện có trong tệp. Nếu không, dữ liệu mới sẽ ghi đè lên dữ liệu hiện có trong tệp.
2. Sử dụng một đối tượng của tệp
FileOutputStream output = new FileOutputStream(File fileObject);
Ở đây, chúng tôi đã tạo một luồng đầu ra sẽ được liên kết với tệp được chỉ định bởi fileObject.
2. Phương thức của FileOutputStream
lớp FileOutputStream cung cấp triển khai cho các phương pháp khác nhau trình bày trong lớp OutputStream.
2.1 Viết phương thức
- write() – viết đơn byte đến luồng đầu ra tệp
- write(byte[] array) – ghi các byte từ mảng được chỉ định vào luồng đầu ra
- write(byte[] array, int start, int length) – ghi số byte bằng chiều dài đến luồng đầu ra từ một mảng bắt đầu từ vị trí khởi đầu
2.2 Ví dụ: FileOutputStream để ghi dữ liệu vào một tệp
import java.io.FileOutputStream;
public class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the file.";
try {
FileOutputStream output = new FileOutputStream("output.txt");
byte[] array = data.getBytes();
// Writes byte to the file
output.write(array);
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Trong ví dụ trên, chúng ta đã tạo một luồng xuất tệp có tên đầu ra. Luồng xuất tệp được liên kết với tệp output.txt .
FileOutputStream output = new FileOutputStream("output.txt");
Để ghi dữ liệu vào tệp, chúng ta đã sử dụng phương thức write().
Tại đây, khi chúng ta chạy chương trình, tệp output.txt sẽ chứa nội dung sau.
This is a line of text inside the file.
Lưu ý : Phương thức getBytes() được sử dụng trong chương trình chuyển đổi một chuỗi thành một mảng byte.
2.3 phương thức flush()
Để xóa luồng đầu ra, chúng ta có thể sử dụng phương thức flush(). Phương thức này buộc luồng đầu ra ghi tất cả dữ liệu vào đích. Ví dụ,
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
FileOutputStream out = null;
String data = "This is demo of flush method";
try {
out = new FileOutputStream(" flush.txt");
// Using write() method
out.write(data.getBytes());
// Using the flush() method
out.flush();
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Khi chúng tôi chạy chương trình, tệp flush.txt được điền bằng văn bản được đại diện bởi chuỗi data.
2.4 phương thức close()
Để đóng luồng xuất tệp, chúng ta có thể sử dụng phương thức close(). Khi phương thức được gọi, chúng ta không thể sử dụng các phương thức của FileOutputStream.
3. Các phương thức khác của FileOutputStream
Phương thức | Mô tả |
finalize() | đảm bảo rằng phương thức close() được gọi |
getChannel() | trả về đối tượng của được FileChannell iên kết với luồng đầu ra |
getFD() | trả về bộ mô tả tệp được liên kết với luồng đầu ra |
Để tìm hiểu thêm, hãy truy cập Java FileOutputStream (tài liệu Java chính thức) .
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Java từ cơ bản tới nâng cao tại đây nha.
- Ebook về Java tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!