이 글에서는 Nodejs의 파일 작업(디렉토리/파일 생성 및 삭제, 이름 바꾸기, 콘텐츠 추가, 콘텐츠 읽기)을 소개하고 스트림에 대해 간략하게 설명합니다.
NodeJS
이 api를 사용하는 한 논리적으로 말하면 파일에서도 작동할 수 있습니다. 합리적으로
일부 데이터 처리를 결합하면 많은 로컬 작업을 완료할 수 있습니다. [추천 학습: "nodejs tutorialNodeJS
除了在网络方面大放异彩,它还可以对文件进行操作,按逻辑上来说只要我们合理运用这些api
再加上一些数据处理,我们就可以完成本地很多的操作。【推荐学习:《nodejs 教程》】require
,而今天要介绍的主角是fs
模块,也就是NodeJS
内置的一个文件模块,这个模块有很多的API
供我们使用。fs.mkdir
fs.writeFile
来分别创建目录和文件。mkdir()
可以接收三个参数,第一个是路径,第二个是个可选项代表权限,这个我们一般不需要,第三个参数是一个回调函数,我们可以在这里面做一些处理。/* learnNode.js */ let fs = require('fs'); fs.mkdir('js',(err)=>{ if(err){ console.log('出错') }else{ console.log('未出错') } })
writeFile()
可以接收四个参数,第一个是路径,第二个是文件内容,第三个可选项代表权限,第四个是回调函数。/* learnNode.js */ let fs = require('fs'); fs.writeFile('./js/newJs.js','console.log("写入这个")',(err)=>{ if(err){ console.log('出错') }else{ console.log('没出错') } })
fs.stat
来检测一个路径的文件是为目录还是文件,进而可以做一些操作。/* learnNode.js */ let fs = require('fs'); fs.stat('./js/newJs.js', (error, stats) => { if(error) { console.log(error); return false; } else { console.log(`是否文件:${stats.isFile()}`); console.log(`是否目录:${stats.isDirectory()}`); return false; } })
err
错误和stats
对象,这个对象提供有关文件的信息,我们可以对这个对象信息来进行判断。NodeJS
创建文件那当然我们也可以删除文件,主要使用的是fs.unlink``fs.rmdir
这两个API
。/* learnNode.js */ let fs = require('fs'); fs.unlink('./js/newJs.js', (err) => { if (err) throw err; console.log('文件已删除'); }); fs.rmdir('./js',(err)=>{ if (err) throw err; console.log('目录已删除'); })
API
都分别接收两个参数是路径和回调函数,执行node learnNode.js
可以看到我们文件已经成功删除。fs.rename
来对文件重命名。/* learnNode.js */ let fs = require('fs'); fs.rename('oldJs.js','newJs.js',(err)=>{ if(err){ console.log('出错') }else{ console.log('未出错') } })
rename()
可以接收三个参数第一个是路径第二个是更改的名称,第三个是回调函数,值得注意的是,如果第一个参数和第二个参数对应的文件所在的位置不一样时,他不会重命名之前那个文件而是直接把文件剪切放到另一个地方。/* learnNode.js */ let fs = require('fs'); fs.rename('newJs.js','./js/oldJs.js',(err)=>{ if(err){ console.log('出错') }else{ console.log('剪切到js文件夹内了') } })
fs.appendFile
。/* learnNode.js */ let fs = require('fs'); fs.appendFile('newJs.txt','我是追加的内容',(err)=>{ if(err){ console.log('出错') }else{ console.log('追加内容') } })
appendFile()
可以接收三个参数,第一个是路径,第二个是内容,第三个是回调函数,执行node learnNode.js
即可。fs.readFile
和fs.readdir
"]우리는 모듈을 참조하려면 require<를 사용해야 한다는 것을 알고 있습니다. /code> 인데, 오늘 소개하고 싶은 주인공은 <code>NodeJS
에 내장된 파일 모듈인 fs
모듈입니다. 이 모듈에는 많은 API</가 있습니다. 코드>를 사용합니다. <img src="https://img.php.cn/upload/image/235/577/894/162925288115805Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다." title="162925288115805Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다." alt="Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다."/></p><h3 data-id="heading-2"><p>디렉토리 및 파일 생성<img src="https://img.php.cn/upload/image/918/180/748/162925288813551Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다." title="162925288813551Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다." alt="Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다."/></h3></p>🎜 <code>fs.mkdir
fs.writeFile
을 사용하여 디렉토리와 파일을 별도로 생성합니다. 🎜🎜mkdir()
은 세 개의 매개변수를 받을 수 있습니다. 첫 번째 매개변수는 경로이고, 두 번째 매개변수는 권한을 나타내는 선택적 옵션입니다. 일반적으로 이는 필요하지 않으며, 세 번째 매개변수는 콜백 함수입니다. 여기에서 처리를 수행하세요. 🎜🎜
/* learnNode.js */ let fs = require('fs'); fs.readFile('newJs.txt', (err, data) => { if(err) { console.log('出错'); } else { console.log("读取文件成功!"); console.log(data); } })
writeFile()
은 4개의 매개변수를 받을 수 있습니다. 첫 번째는 경로, 두 번째는 파일 콘텐츠, 세 번째 옵션은 권한을 나타내고 네 번째는 콜백 함수입니다. 🎜🎜/* learnNode.js */ let fs = require('fs'); fs.readdir('./', (err, data) => { if(err) { console.log('出错'); } else { console.log("读取目录成功!"); console.log(data); } })
fs.stat
를 사용하여 경로의 파일이 디렉터리인지 또는 파일을 선택한 다음 일부 작업을 수행할 수 있습니다. 🎜🎜var fs = require("fs"); var data = ''; // 创建可读流 var readerStream = fs.createReadStream('newJs.txt'); // 设置编码为 utf8。 readerStream.setEncoding('UTF8'); // 处理流事件 遇到有数据时执行这个 readerStream.on('data', function(chunk) { data += chunk; console.log(chunk,'流遇到数据了') }); // 处理流事件 流结束时执行这个 readerStream.on('end',function(){ console.log(data,'流结束了'); }); // 处理流事件 流报错时执行这个 readerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");
err
오류와 라는 두 개의 매개변수가 있습니다. >stats
객체, 이 객체는 파일에 대한 정보를 제공하므로 이 객체 정보를 판단할 수 있습니다. 🎜🎜🎜🎜< h3 data-id="heading-4">🎜파일 삭제 및 디렉터리 삭제🎜🎜🎜NodeJS
를 사용하여 파일을 생성할 수 있으므로 물론 주로 다음을 사용하여 파일을 삭제할 수도 있습니다. fs.unlink``fs.rmdir
이 두 API
입니다. 🎜🎜var fs = require("fs"); var data = '我是小卢,我再写入流'; // 创建一个可以写入的流,写入到文件 newJs.txt 中 var writerStream = fs.createWriteStream('newJs.txt'); // 使用 utf8 编码写入数据 writerStream.write(data,'UTF8'); // 标记文件末尾 writerStream.end(); // 处理流事件 完成和报错时执行 writerStream.on('finish', function() { console.log("写入完毕"); }); writerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");
API
는 각각 경로와 콜백 함수라는 두 개의 매개변수를 받습니다. node learnNode.js
를 실행하면 파일이 성공적으로 삭제된 것을 확인할 수 있습니다. 🎜🎜🎜🎜< h3 data-id="heading-5">🎜Rename🎜🎜🎜fs.rename
을 사용하여 파일 이름을 바꿀 수 있습니다. 🎜🎜rrreee🎜🎜rename()
은 세 개의 매개변수를 받을 수 있습니다. 첫 번째는 경로, 두 번째는 변경된 이름, 세 번째는 콜백 함수입니다. 두 번째 매개변수에 해당하는 파일의 위치가 다를 경우, 이전 파일의 이름을 변경하지 않고 바로 파일을 잘라내어 다른 위치에 배치합니다. 🎜🎜rrreeefs.appendFile
을 사용할 수 있습니다. 🎜🎜rrreee🎜🎜appendFile()
은 세 개의 매개변수를 받을 수 있습니다. 첫 번째는 경로, 두 번째는 콘텐츠, 세 번째는 콜백 함수입니다. node learnNode.js</를 실행하세요. 코드> 코드>이면 충분합니다. 🎜🎜🎜<img src="https://img.php.cn/upload/image/847/247/243/162925287798940Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다." title="162925287798940Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다." alt="Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다."/>🎜< h3 data-id="heading-7">🎜파일 읽기 및 디렉토리 읽기🎜</h3>🎜🎜위의 내용은 모두 파일 추가, 삭제, 수정 작업입니다. 이제 읽기 내용도 마스터해야 합니다. <code>fs.readFile
및 fs.readdir
는 각각 파일과 디렉터리를 읽습니다. 🎜🎜rrreee🎜🎜🎜rrreee🎜🎜🎜API
都是接收两个参数,第一个是路径,第二个是回调函数,这个回调函数也有两个参数里面包含了data
信息,我们可以打印这个data
信息来获取内容。stream
,翻译过来就是流
的意思,提到流你会想到什么,河流,水流,都是从一个源头到另一个源头,就像水龙头从开关到流到地面,stream
也是这样一个过程。error
,有数据时触发的data
。var fs = require("fs"); var data = ''; // 创建可读流 var readerStream = fs.createReadStream('newJs.txt'); // 设置编码为 utf8。 readerStream.setEncoding('UTF8'); // 处理流事件 遇到有数据时执行这个 readerStream.on('data', function(chunk) { data += chunk; console.log(chunk,'流遇到数据了') }); // 处理流事件 流结束时执行这个 readerStream.on('end',function(){ console.log(data,'流结束了'); }); // 处理流事件 流报错时执行这个 readerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");
fs.createReadStream()
,参数是你要读的文件路径。readerStream.on('data',callback())
,如下图所示。readerStream.on('end',callback())
,如下图所示。var fs = require("fs"); var data = '我是小卢,我再写入流'; // 创建一个可以写入的流,写入到文件 newJs.txt 中 var writerStream = fs.createWriteStream('newJs.txt'); // 使用 utf8 编码写入数据 writerStream.write(data,'UTF8'); // 标记文件末尾 writerStream.end(); // 处理流事件 完成和报错时执行 writerStream.on('finish', function() { console.log("写入完毕"); }); writerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");
data
数据写入newJs.txt
文件中。readerStream.on('finish',callback())
,如下图所示。newJs.txt
文件中已经存在了我们写入的数据。总的来说NodeJS
提供了fs
文件操作模块,这个模块有很多的API
,上面只是简单的展示了一下,还有很多有趣的API
大家只需要用到的时候去官网查就好了,因为NodeJS
能操作文件,小至文件查找,大至代码编译。换个角度讲,几乎也只需要一些数据处理逻辑,再加上一些文件操作,就能够编写出大多数前端工具。
原文地址:https://juejin.cn/post/6997204352683212831
作者:快跑啊小卢_
更多编程相关知识,请访问:编程视频!!
위 내용은 Nodejs 파일 작업 및 스트림(streams)을 빠르게 소개합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!