JavaScript:
Viết một tệp văn bản

Làm thế nào:

JavaScript trong trình duyệt không có quyền truy cập trực tiếp vào hệ thống tệp vì lý do an ninh. Nhưng bạn có thể tạo một tệp văn bản và nhắc người dùng lưu nó:

function downloadTextFile(text, filename) {
  const blob = new Blob([text], { type: 'text/plain' });
  const a = document.createElement('a');
  a.download = filename;
  a.href = window.URL.createObjectURL(blob);
  a.dataset.downloadurl = ['text/plain', a.download, a.href].join(':');
  a.style.display = "none";
  document.body.appendChild(a);  // Thêm thẻ neo vào thân trang.
  a.click();
  
  document.body.removeChild(a);  // Dọn dẹp thẻ neo sau khi sử dụng.
  window.URL.revokeObjectURL(a.href);  // Giải phóng URL của blob.
}

// Sử dụng:
downloadTextFile('Xin chào, thế giới!', 'example.txt');

Node.js cung cấp một cách đơn giản hơn để viết tệp qua mô-đun fs:

const fs = require('fs');

fs.writeFile('example.txt', 'Xin chào, thế giới!', (err) => {
  if (err) throw err;
  console.log('Đã lưu tệp!');
});

Đi sâu hơn

Trước đây, JavaScript bị giới hạn trong trình duyệt mà không có quyền truy cập vào hệ thống tệp. Node.js đã thay đổi cục diện này bằng cách hé lộ khả năng phía máy chủ.

Các lựa chọn thay thế cho fs.writeFile bao gồm fs.writeFileSync cho các hoạt động đồng bộ và fs.promises.writeFile cho kiểm soát không đồng bộ dựa trên promise.

Các phương thức fs của Node xử lý bộ đệm và luồng - các công cụ giải quyết vấn đề xử lý tệp lớn và giao tiếp mạng.

Xem thêm