当前位置:首页 > JavaScript

js实现读写

2026-03-14 09:16:36JavaScript

JavaScript 实现文件读写

在浏览器环境中,JavaScript 通常无法直接读写本地文件系统,但可以通过以下方法实现文件读写操作。

读取文件

使用 <input type="file"> 元素允许用户选择文件,然后通过 FileReader API 读取文件内容。

const fileInput = document.createElement('input');
fileInput.type = 'file';

fileInput.addEventListener('change', (event) => {
  const file = event.target.files[0];
  const reader = new FileReader();

  reader.onload = (e) => {
    const content = e.target.result;
    console.log(content); // 文件内容
  };

  reader.readAsText(file); // 以文本形式读取
});

document.body.appendChild(fileInput);

写入文件

在浏览器中无法直接写入本地文件,但可以通过以下方式模拟:

  • 使用 BlobURL.createObjectURL 生成下载链接。
  • 使用 File System Access API(现代浏览器支持)。
// 生成并下载文件
const content = 'Hello, World!';
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);

const a = document.createElement('a');
a.href = url;
a.download = 'example.txt'; // 下载文件名
a.click();

URL.revokeObjectURL(url); // 释放内存

Node.js 环境下的文件读写

在 Node.js 中,可以使用 fs 模块直接读写文件。

const fs = require('fs');

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

// 异步写入文件
fs.writeFile('output.txt', 'New content', (err) => {
  if (err) throw err;
  console.log('File saved');
});

使用 File System Access API(浏览器)

现代浏览器支持更高级的文件操作:

js实现读写

async function saveFile(content) {
  const options = {
    types: [{
      description: 'Text Files',
      accept: { 'text/plain': ['.txt'] },
    }],
  };
  const handle = await window.showSaveFilePicker(options);
  const writable = await handle.createWritable();
  await writable.write(content);
  await writable.close();
}

注意事项

  • 浏览器环境下的文件操作需要用户交互触发(如点击事件)。
  • File System Access API 需要 HTTPS 环境或本地开发环境。
  • Node.js 的 fs 模块分为同步和异步方法,异步方法更适合生产环境。

标签: js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…