文件关上和敞开fs.open(path.resolve("data.txt"), "r", (err, fd) => { console.log(fd); // 3});fs.open("data.txt", "r", (err, fd) => { console.log(fd); fs.close(fd, (err) => { console.log('close successful'); });});大文件读写操作波及open和write两个办法
// read 读操作就是将数据从磁盘文件写入到buffer中// read(fd: number, --定位以后被关上的文件// buffer: Buffer, --用于标识以后缓冲区// offset: number, --从buffer哪个地位开始写操作// length: number, --以后次写入的字节长度// position: fs.ReadPosition, --从磁盘文件中哪一个字节开始读取// callback: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): voidlet buf = Buffer.alloc(10);fs.open("data.txt", "r", (err, readfd) => { console.log(readfd); fs.read(readfd, buf, 1, 3, 2, (err, readBytes, data) => { console.log(readBytes); console.log(data); console.log(data.toString()); });});// write(fd: number,--定位以后被关上的文件// buffer: Buffer, --用于标识以后缓冲区// offset: number, --从buffer哪个地位开始读取数据// length: number, --以后次写的字节长度 // position: number, --从哪个字节开始写操作// callback: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): voidlet buf = Buffer.from('1234567890')fs.open('a.txt','w',(err,writefd)=>{ fs.write(writefd,buf,1,3,0,(err,written,buffer)=>{ console.log(written) // 3 console.log(buffer) // <Buffer 31 32 33 34 35 36 37 38 39 30> console.log(buffer.toString()) // 1234567890 fs.close(writefd) })})文件拷贝自定义实现/** * 1关上a文件,利用read将数据保留到buffer暂存起来 -- a文件内容为1234567890 * 2,关上b文件,利用write将buffer中数据写入到b文件 */let buf = Buffer.alloc(10);// 关上指定文件fs.open("a.txt", "r", (err, readfd) => { // 关上b文件,用于执行数据写入操作 fs.open("b.txt", "w", (err, writefd) => { // 从关上的文件读取数据 fs.read(readfd, buf, 0, 10, 0, (err, readBytes) => { // buffer写入到b.txt中 fs.write(writefd, buf, 0, 10, 0, (err, wirtten) => { console.log("write successful"); }); }); });});针对大文件边读边写,利用buffer缓冲区实现操作
...