当前位置:首页 > JavaScript

js实现读写

2026-04-06 03:21:33JavaScript

JavaScript 文件读取

在浏览器环境中,JavaScript 通常无法直接访问文件系统,但可以通过以下方式实现文件读取:

File API 读取本地文件

js实现读写

document.getElementById('fileInput').addEventListener('change', function(e) {
  const file = e.target.files[0];
  const reader = new FileReader();

  reader.onload = function(e) {
    const content = e.target.result;
    console.log(content);
  };

  reader.readAsText(file);
});

Node.js 文件读取

const fs = require('fs');

// 同步读取
const data = fs.readFileSync('file.txt', 'utf8');
console.log(data);

// 异步读取
fs.readFile('file.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

JavaScript 文件写入

浏览器环境写入 浏览器端无法直接写入文件系统,但可以创建下载:

js实现读写

function downloadFile(content, filename, contentType) {
  const a = document.createElement('a');
  const blob = new Blob([content], {type: contentType});
  a.href = URL.createObjectURL(blob);
  a.download = filename;
  a.click();
}

downloadFile('Hello World', 'example.txt', 'text/plain');

Node.js 文件写入

const fs = require('fs');

// 同步写入
fs.writeFileSync('file.txt', 'Hello World', 'utf8');

// 异步写入
fs.writeFile('file.txt', 'Hello World', 'utf8', (err) => {
  if (err) throw err;
  console.log('File saved');
});

现代浏览器文件系统访问

使用 File System Access API(需要 HTTPS 环境):

async function saveFile(content) {
  try {
    const handle = await window.showSaveFilePicker({
      types: [{
        description: 'Text files',
        accept: {'text/plain': ['.txt']},
      }],
    });

    const writable = await handle.createWritable();
    await writable.write(content);
    await writable.close();
  } catch (err) {
    console.error(err);
  }
}

注意事项

  • 浏览器环境文件操作需要用户主动触发(如点击事件)
  • Node.js 需要文件系统权限
  • 生产环境应考虑错误处理和权限检查
  • 大文件处理应使用流式读写避免内存问题

标签: js
分享给朋友:

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…