当前位置:首页 > 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方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现百叶窗

js实现百叶窗

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

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…