//1\. 引入模塊
const fs= require("fs");
// console.log(fs)
//2\. 打開文件
// fs.open 異步讀取(一般用異步 需設置回調函數)
// fs.openSync 同步讀取(讀取時會阻塞線程)
let hello = fs.openSync("hello.txt", "w");
// 不存在會自動新建
//3\. 寫入內容
fs.writeFileSync(hello,'hello word!');
//4\. 保存並退出
fs.closeSync(hello);
複製代碼
fs.open(path,flags[,mode],callback)
異步打開 異步都是回調 回調嵌套回調 fs.openSync(path,flags[,mode])
同步打開文件標記(flags): nodejs.cn/api/fs.html…html
1、同步打開文件node
//1\. 引入模塊
let fs = require('fs');
//2.打開文件 同步
var fd=fs.openSync('1.txt', 'w');
//3.寫入內容
fs.writeFileSync(fd,"hello world!");
//4\. 保存並關閉
fs.closeSync(fd);
複製代碼
2、異步打開文件git
//1.引入模塊
let fs = require('fs');
//2\. 打開文件
fs.open('1.txt', 'a', (err, fd)=>{
//2.1判斷是否出錯
if(!err){
//正確 2.2寫入文件
fs.writeFile(fd, "今每天.....氣真好!", (err)=>{
//2.2.1 寫入成功
if(!err){
console.log('寫入成功');
}else{
throw err;
}
//2.3 關閉文件
fs.close(fd, (err)=>{
if(!err){
console.log('文件以保存並關閉')
}else{
throw err;
}
})
})
}else{
throw err;
}
})
複製代碼
文件流寫入: nodejs.cn/api/fs.html…github
//同步操做
//1\. 引入模塊
let fs= require('fs');
//2.創建通道
let ws = fs.createWriteStream('fsw.txt')
//3.打開通道
ws.once('open', ()=>{
console.log('通道已經打開');
})
ws.once('close', ()=>{
console.log('通道已經關閉');
})
//4\. 寫入內容
ws.write('我愛你,');
ws.write('我愛你,');
ws.write('我愛你,');
複製代碼
文檔地址:nodejs.cn/api/fs.html… 讀取文檔:api
//1\. 引入模塊
let fs = require('fs');
//2\. 讀取文件
fs.readFile('source/hello.txt','utf8',(err,data)=>{
//判斷是否成功
if(!err){
console.log(data);//
// console.log(data.toString());
//data 默認讀取的是二進制 使用toString() 方法轉換成
}else{
throw err;
}
})
讀取圖片:
//3\. 讀取圖片
fs.readFile("source/psb.jpg",(err,data)=>{
//判斷是否成功
if(!err){
//寫入圖片
fs.writeFile('img.jpg', data, (err)=>{
if(!err){
console.log('寫入成功!')
}else{
throw err;
}
})
}else{
throw err;
}
});
複製代碼
讀取視頻:bash
//1\. 引入模塊
let fs= require('fs');
//2\. 讀取視頻
fs.readFile('source/cddbb.mp4', (err, data)=>{
if(!err){
// 寫入視頻
fs.writeFile('nmx.mp4', data, (err)=>{
if(!err){
console.log('寫入成功!');
}else{
throw err;
}
})
}else{
throw err;
}
})
//3\. 流式文件的讀入(批量文件處理)
let re= fs.createReadStream('source/cddbb.mp4');
//創建讀取流
let ws= fs.createWriteStream('新建的視頻.mp4');
//創建寫入流
//4\. 建立管道
re.pipe(ws);//文件流傳輸
console.log('文件流傳輸完成')
複製代碼
參考:詳解NodeJS文件系統fs 個人GitHub總結的NodeJS筆記服務器