Khái niệm
Tệp tin là cơ chế lưu dữ liệu ra ngoài bộ nhớ tạm thời của chương trình. Khi dữ liệu cần được giữ lại sau khi chương trình kết thúc, việc đọc và ghi tệp tin trở thành kỹ năng quan trọng.
Ví dụ ghi một dòng văn bản
with open("notes.txt", "w", encoding="utf-8") as output_file:
output_file.write("Hoc lap trinh co he thong\n")
program FileWriteDemo;
var
outputFile: Text;
begin
Assign(outputFile, 'notes.txt');
Rewrite(outputFile);
Writeln(outputFile, 'Hoc lap trinh co he thong');
Close(outputFile);
end.
#include <stdio.h>
int main(void) {
FILE *output_file = fopen("notes.txt", "w");
if (output_file == NULL) {
return 1;
}
fprintf(output_file, "Hoc lap trinh co he thong\n");
fclose(output_file);
return 0;
}
#include <fstream>
int main() {
std::ofstream outputFile("notes.txt");
outputFile << "Hoc lap trinh co he thong\n";
return 0;
}
File.WriteAllText("notes.txt", "Hoc lap trinh co he thong\n");
// Trong môi trường Node.js
const fs = require("fs");
fs.writeFileSync("notes.txt", "Hoc lap trinh co he thong\n", "utf8");
// Trong môi trường Node.js (ts-node)
import * as fs from "fs";
fs.writeFileSync("notes.txt", "Hoc lap trinh co he thong\n", "utf8");
package main
import "os"
func main() {
os.WriteFile("notes.txt", []byte("Hoc lap trinh co he thong\n"), 0644)
}
use std::fs;
fn main() {
fs::write("notes.txt", "Hoc lap trinh co he thong\n").unwrap();
}
Điều cần chú ý
- Cần xử lý tình huống mở tệp thất bại, nhất là khi làm việc với dữ liệu thật.
Ghi chú theo ngôn ngữ
Khối with trong Python giúp đóng tệp tự động ngay cả khi có lỗi xảy ra trong lúc xử lý.
Pascal dùng các thủ tục như Assign, Reset, Rewrite và Close để thao tác với tệp văn bản kiểu cổ điển.
C thao tác với tệp qua con trỏ FILE *. Sau khi fopen, luôn nên kiểm tra kết quả có bằng NULL hay không trước khi ghi hoặc đọc.
C++ có std::ofstream, std::ifstream và std::fstream. Tệp tự được đóng khi đối tượng ra khỏi phạm vi nhờ cơ chế RAII.
C# có File.ReadAllText, File.WriteAllText cho cách viết ngắn gọng. StreamReader/StreamWriter dùng khi cần xử lý từng dòng hoặc tệp lớn.
Trong Node.js, fs.writeFileSync hoặc fs.promises.writeFile là cách phổ biến. Trong trình duyệt không có quyền truy cập tệp hệ thống trực tiếp.
TypeScript trong Node.js dùng module fs giống JavaScript. Kiểu Buffer và string được kiểm tra tại biên dịch.
Go có os.WriteFile và os.ReadFile cho xử lý đơn giản. bufio dùng khi cần đọc từng dòng hiệu quả hơn.
Rust có fs::write và fs::read_to_string cho các tác vụ đơn giản. BufWriter và BufReader dùng cho file lớn cần hiệu suất tốt hơn.
Bình luận