当前位置:首页 > JavaScript

js实现io

2026-04-06 18:10:01JavaScript

使用 Node.js 实现文件 I/O

Node.js 提供了内置的 fs 模块(文件系统模块),支持同步和异步的文件操作。以下是常见的文件 I/O 操作方法:

异步读取文件

const fs = require('fs');

fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

同步读取文件

const fs = require('fs');

try {
  const data = fs.readFileSync('example.txt', 'utf8');
  console.log(data);
} catch (err) {
  console.error(err);
}

异步写入文件

const fs = require('fs');

fs.writeFile('example.txt', 'Hello World', 'utf8', (err) => {
  if (err) throw err;
  console.log('File written successfully');
});

同步写入文件

const fs = require('fs');

try {
  fs.writeFileSync('example.txt', 'Hello World', 'utf8');
  console.log('File written successfully');
} catch (err) {
  console.error(err);
}

使用流处理大文件

对于大文件,推荐使用流(Stream)来避免内存问题:

读取流

js实现io

const fs = require('fs');
const readStream = fs.createReadStream('largefile.txt', 'utf8');

readStream.on('data', (chunk) => {
  console.log(chunk);
});

readStream.on('end', () => {
  console.log('File reading completed');
});

写入流

const fs = require('fs');
const writeStream = fs.createWriteStream('output.txt');

writeStream.write('Hello ');
writeStream.write('World');
writeStream.end();

文件系统高级操作

检查文件是否存在

const fs = require('fs');

fs.access('example.txt', fs.constants.F_OK, (err) => {
  console.log(err ? 'File does not exist' : 'File exists');
});

删除文件

const fs = require('fs');

fs.unlink('example.txt', (err) => {
  if (err) throw err;
  console.log('File deleted');
});

创建目录

js实现io

const fs = require('fs');

fs.mkdir('newfolder', (err) => {
  if (err) throw err;
  console.log('Directory created');
});

使用 Promise API

Node.js 也提供了基于 Promise 的文件系统 API:

const fs = require('fs').promises;

async function readFile() {
  try {
    const data = await fs.readFile('example.txt', 'utf8');
    console.log(data);
  } catch (err) {
    console.error(err);
  }
}

readFile();

浏览器端的文件 I/O

在浏览器环境中,可以使用 File API 处理用户选择的文件:

读取用户选择的文件

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

  reader.onload = (e) => {
    console.log(e.target.result);
  };

  reader.readAsText(file);
});

保存文件到本地

function saveFile(content, fileName) {
  const blob = new Blob([content], { type: 'text/plain' });
  const url = URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.href = url;
  a.download = fileName;
  a.click();
  URL.revokeObjectURL(url);
}

saveFile('Hello World', 'example.txt');

标签: jsio
分享给朋友:

相关文章

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…