赞
踩
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine
Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境
Buffer 常用方法:
Buffer.from(str[, encoding])
:将一个字符串转换为 BufferBuffer.alloc(size)
:创建指定大小的 BufferBuffer.alloUnsafe(size)
:创建指定大小的 Buffer,可能包含敏感数据(分配内存时不会清除内存残留的数据)buf.toString()
:将 Buffer 数据转为字符串var str = 'Hello前端' var buf = Buffer.from(str) // 占用内存的大小,一个汉字3字节 13 console.log(buf.length) // 字符串的长度 7 console.log(str.length) // 8进制输出第一个元素 145 console.log(buf[1].toString(8)) //创建一个10个字节的buffer var buf2 = Buffer.alloc(10) //通过索引,来操作buf中的元素 buf2[0] = 88 buf2[1] = 255 buf2[2] = 0xaa buf2[3] = 255 var buf3 = Buffer.allocUnsafe(10) console.log(buf3)
打开模式:
模式 | 说明 |
---|---|
r | 读取文件,文件不存在抛异常 |
r+ | 读写文件,文件不存在抛异常 |
rs | 同步模式下打开文件用于读取 |
rs+ | 同步模式下打开文件用于读写 |
w | 写文件,不存在则创建,存在则覆盖原有内容 |
wx | 写文件,文件存在打开失败 |
w+ | 读写文件,不存在创建,存在截断 |
wx+ | 读写,存在打开失败 |
a | 追加,不存在创建 |
ax | 追加,存在失败 |
a+ | 追加和读取,不存在创建 |
ax+ | 追加和读取,存在失败 |
语法格式:
fs.readFile(path[, options], callback)
path
:文件路径
options
:配置选项,若是字符串则指定编码格式
encoding
:编码格式flag
:打开方式callback
:回调函数
err
:错误信息data
:读取的数据,如果未指定编码格式则返回一个 Bufferconst fs = require('fs') fs.readFile('./files/1.txt', 'utf-8', function(err, data) => { if(err) { return console.log('failed!' + err.message) } console.log('content:' + data) }) // 复制文件内容 fs.readFile("C:/Users/笔记.mp3", function(err, data) { if(!err) { console.log(data); // 将data写入到文件中 fs.writeFile("C:/Users/hello.jpg", data, function(err){ if(!err){ console.log("文件写入成功"); } } ); } });
var fs = require('fs') // 创建一个可读流 var rs = fs.createReadStream('C:/Users/笔记.mp3') // 创建一个可写流 var ws = fs.createWriteStream('a.mp3') // 监听流的开启和关闭 // 这几个监听不是必须的 rs.once('open', function () { console.log('可读流打开了~~') }) rs.once('close', function () { console.log('可读流关闭了~~') //数据读取完毕,关闭可写流 ws.end() }) ws.once('open', function () { console.log('可写流打开了~~') }) ws.once('close', function () { console.log('可写流关闭了~~') }) //要读取一个可读流中的数据,要为可读流绑定一个data事件,data事件绑定完毕自动开始读取数据 rs.on('data', function (data) { console.log(data) //将读取到的数据写入到可写流中 ws.write(data) })
简便方式:
var fs = require('fs')
var rs = fs.createReadStream('C:/Users/lilichao/Desktop/笔记.mp3')
var ws = fs.createWriteStream('b.mp3')
// pipe()可以将可读流中的内容,直接输出到可写流中
rs.pipe(ws)
语法格式:
fs.writeFile(file, data[, options], callback)
file
:文件路径data
:写入内容options
:配置选项,包含 encoding, mode, flag
;若是字符串则指定编码格式callback
:回调函数const fs = require('fs')
fs.writeFile('./files/2.txt', 'Hello Nodejs', function (err) {
if (err) {
return console.log('failed!' + err.message)
}
console.log('success!')
})
fs.writeFile('C:/Users/hello.txt', '通过 writeFile 写入的内容', { flag: 'w' }, function (err) {
if (!err) {
console.log('写入成功!')
} else {
console.log(err)
}
})
// 同步、异步、简单文件的写入都不适合大文件的写入,性能较差,容易导致内存溢出
var fs = require('
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。