当前位置: 首页 > wzjs >正文

b站视频推广网站动漫做网站用什么编程软件

b站视频推广网站动漫,做网站用什么编程软件,免费的网站托管,济南智能网站建设流程Node.js 中 fs 模块(非 Promise)API 详解 Node.js 的 fs 模块提供了同步和异步的文件系统操作。以下是非 Promise 版本的 API 详解: 1. 文件读取操作 const fs require(fs);// 异步读取文件 fs.readFile(file.txt, utf8, (err, data) >…

Node.js 中 fs 模块(非 Promise)API 详解

Node.js 的 fs 模块提供了同步和异步的文件系统操作。以下是非 Promise 版本的 API 详解:

1. 文件读取操作

const fs = require('fs');// 异步读取文件
fs.readFile('file.txt', 'utf8', (err, data) => {if (err) {console.error('读取文件失败:', err);return;}console.log('文件内容:', data);
});// 同步读取文件
try {const data = fs.readFileSync('file.txt', 'utf8');console.log('文件内容:', data);
} catch (err) {console.error('读取文件失败:', err);
}// 使用文件描述符读取
fs.open('file.txt', 'r', (err, fd) => {if (err) {console.error('打开文件失败:', err);return;}const buffer = Buffer.alloc(100);fs.read(fd, buffer, 0, 100, 0, (err, bytesRead, buffer) => {if (err) {console.error('读取文件失败:', err);fs.close(fd, () => {});return;}console.log('读取字节数:', bytesRead);console.log('文件内容:', buffer.toString());fs.close(fd, (err) => {if (err) console.error('关闭文件失败:', err);});});
});

2. 文件写入操作

// 异步写入文件
fs.writeFile('output.txt', 'Hello World', 'utf8', (err) => {if (err) {console.error('写入文件失败:', err);return;}console.log('写入文件成功');
});// 同步写入文件
try {fs.writeFileSync('output.txt', 'Hello World', 'utf8');console.log('写入文件成功');
} catch (err) {console.error('写入文件失败:', err);
}// 追加内容
fs.appendFile('log.txt', 'New log entry\n', 'utf8', (err) => {if (err) {console.error('追加内容失败:', err);return;}console.log('追加内容成功');
});// 使用文件描述符写入
fs.open('file.txt', 'w', (err, fd) => {if (err) {console.error('打开文件失败:', err);return;}fs.write(fd, 'Hello World', 0, 'utf8', (err, written, string) => {if (err) {console.error('写入文件失败:', err);fs.close(fd, () => {});return;}console.log('写入字节数:', written);fs.close(fd, (err) => {if (err) console.error('关闭文件失败:', err);});});
});

3. 文件操作

// 复制文件
fs.copyFile('source.txt', 'dest.txt', (err) => {if (err) {console.error('复制文件失败:', err);return;}console.log('复制文件成功');
});// 重命名文件
fs.rename('old.txt', 'new.txt', (err) => {if (err) {console.error('重命名文件失败:', err);return;}console.log('重命名文件成功');
});// 删除文件
fs.unlink('file.txt', (err) => {if (err) {console.error('删除文件失败:', err);return;}console.log('删除文件成功');
});// 创建硬链接
fs.link('source.txt', 'link.txt', (err) => {if (err) {console.error('创建硬链接失败:', err);return;}console.log('创建硬链接成功');
});// 创建符号链接
fs.symlink('target.txt', 'symlink.txt', (err) => {if (err) {console.error('创建符号链接失败:', err);return;}console.log('创建符号链接成功');
});// 读取符号链接
fs.readlink('symlink.txt', (err, linkString) => {if (err) {console.error('读取符号链接失败:', err);return;}console.log('符号链接目标:', linkString);
});// 获取文件信息
fs.stat('file.txt', (err, stats) => {if (err) {console.error('获取文件信息失败:', err);return;}console.log('Is file:', stats.isFile());console.log('Size:', stats.size);console.log('Created:', stats.birthtime);console.log('Modified:', stats.mtime);
});// 修改文件权限
fs.chmod('file.txt', 0o666, (err) => {if (err) {console.error('修改文件权限失败:', err);return;}console.log('修改文件权限成功');
});// 修改文件所有者
fs.chown('file.txt', 1000, 1000, (err) => {if (err) {console.error('修改文件所有者失败:', err);return;}console.log('修改文件所有者成功');
});

4. 目录操作

// 创建目录
fs.mkdir('new-directory', { recursive: true }, (err) => {if (err) {console.error('创建目录失败:', err);return;}console.log('创建目录成功');
});// 读取目录
fs.readdir('directory', (err, files) => {if (err) {console.error('读取目录失败:', err);return;}console.log('目录内容:', files);
});// 删除目录
fs.rmdir('empty-directory', (err) => {if (err) {console.error('删除目录失败:', err);return;}console.log('删除目录成功');
});// 递归删除目录
fs.rm('directory', { recursive: true, force: true }, (err) => {if (err) {console.error('递归删除目录失败:', err);return;}console.log('递归删除目录成功');
});// 获取目录信息
fs.stat('directory', (err, stats) => {if (err) {console.error('获取目录信息失败:', err);return;}console.log('Is directory:', stats.isDirectory());
});// 修改目录权限
fs.chmod('directory', 0o755, (err) => {if (err) {console.error('修改目录权限失败:', err);return;}console.log('修改目录权限成功');
});

5. 文件监视

// 监视文件变化
const watcher = fs.watch('file.txt', (eventType, filename) => {console.log(`Event: ${eventType}, File: ${filename}`);
});// 停止监视
watcher.close();// 监视目录
const dirWatcher = fs.watch('directory', { recursive: true }, (eventType, filename) => {console.log(`Directory event: ${eventType}, File: ${filename}`);
});// 停止目录监视
dirWatcher.close();

6. 文件流操作

// 创建读取流
const readStream = fs.createReadStream('input.txt', {encoding: 'utf8',highWaterMark: 64 * 1024 // 64KB 缓冲区
});// 创建写入流
const writeStream = fs.createWriteStream('output.txt', {encoding: 'utf8',flags: 'a'
});// 流事件处理
readStream.on('data', (chunk) => {console.log('Received chunk:', chunk);
});readStream.on('end', () => {console.log('Finished reading');
});readStream.on('error', (error) => {console.error('Read error:', error);
});// 管道操作
readStream.pipe(writeStream);// 关闭流
readStream.destroy();
writeStream.end();

7. 临时文件操作

// 创建临时目录
fs.mkdtemp('prefix-', (err, folder) => {if (err) {console.error('创建临时目录失败:', err);return;}console.log('临时目录:', folder);// 在临时目录中创建文件const tempFile = path.join(folder, 'temp.txt');fs.writeFile(tempFile, 'Temporary content', (err) => {if (err) {console.error('创建临时文件失败:', err);return;}console.log('临时文件创建在:', tempFile);});
});

8. 文件系统信息

// 获取文件系统信息
fs.statfs('/', (err, stats) => {if (err) {console.error('获取文件系统信息失败:', err);return;}console.log('Total space:', stats.blocks * stats.bsize);console.log('Free space:', stats.bfree * stats.bsize);
});// 获取文件描述符
fs.open('file.txt', 'r', (err, fd) => {if (err) {console.error('打开文件失败:', err);return;}console.log('File descriptor:', fd);fs.close(fd, (err) => {if (err) console.error('关闭文件失败:', err);});
});

9. 错误处理

// 检查文件是否存在
fs.access('nonexistent.txt', fs.constants.F_OK, (err) => {if (err) {if (err.code === 'ENOENT') {console.log('文件不存在');} else if (err.code === 'EACCES') {console.log('没有访问权限');} else {console.error('其他错误:', err);}} else {console.log('文件存在');}
});

10. 常量

// 文件打开模式
const modes = {READ: fs.constants.O_RDONLY,WRITE: fs.constants.O_WRONLY,READ_WRITE: fs.constants.O_RDWR,APPEND: fs.constants.O_APPEND,CREATE: fs.constants.O_CREAT,EXCL: fs.constants.O_EXCL,TRUNC: fs.constants.O_TRUNC
};// 文件类型
const types = {FILE: fs.constants.S_IFREG,DIRECTORY: fs.constants.S_IFDIR,SYMBOLIC_LINK: fs.constants.S_IFLNK,SOCKET: fs.constants.S_IFSOCK,CHARACTER_DEVICE: fs.constants.S_IFCHR,BLOCK_DEVICE: fs.constants.S_IFBLK,FIFO: fs.constants.S_IFIFO
};

这些是 Node.js fs 模块(非 Promise 版本)的主要 API。与 Promise 版本相比,这些 API 使用回调函数而不是返回 Promise。

http://www.dtcms.com/wzjs/331622.html

相关文章:

  • tob wordpress网站排名优化方案
  • 做网站流程内容网络营销的含义的理解
  • 海外网络推广定制上海网络优化seo
  • 怎么做网络推广挣钱windows系统优化软件排行榜
  • 个人网站备案做论坛宁波seo网站排名
  • qq查冻结网站怎么做东莞seo网站排名优化公司
  • 网络建站免费网址互联网公司排名
  • 做网站数据库有哪些爱站工具
  • 网站上怎么做动画广告视频下载营销网络怎么写
  • 怎么用wordpress做模板seo快速排名点击
  • 宁海哪家做网站比较可靠seo指什么
  • 做网站全部乱码怎么办百度售后电话人工服务
  • 如何做网站外部链接seo全网推广营销软件
  • 嘉兴网站建设成都网站设计沈阳seo优化新势力
  • 网站搜索优化找哪家网页设计规范
  • 上饶门户网站建设企业宣传片视频
  • 站酷设计网站官网入seo任务
  • 室内设计欣赏网站友情链接推广
  • 石家庄网站建设招商交换友情链接的注意事项
  • 建网站找哪家公司域名注册费用
  • wordpress缩略图裁剪东莞网络推广及优化
  • 网站推广销售邵阳网站seo
  • 如何注销网站百度推广优化师
  • 做网站怎么发布网站设计师
  • 哪个网站比较好搜索关键词查询工具
  • 网站开发常用的语言和工具百度seo找哪里
  • 建设银行小微企业网站进不了亚马逊关键词优化怎么做
  • 自己做淘宝优惠券网站湖北seo
  • 网站开发超链接点击后变色广州网站维护
  • 做科研交流常用的网站seo软件优化