Node-文件基本操作速記

同步則加Sync 沒有回調函數 直接返回結果 例如:fs.accessSync 返回 true false

 1. fs.stat  檢測是文件還是目錄(目錄 文件是否存在) 
 2. fs.mkdir  創建目錄 (創建之前先判斷是否存在) 
 3. fs.writeFile  寫入文件(文件不存在就創建,但不能創建目錄) 
 4. fs.appendFile 寫入追加文件 
 5. fs.readFile 讀取文件 
 6. fs.readdir 讀取目錄 
 7. fs.rename 重命名 
 8. fs.rmdir  刪除目錄 
 9. fs.unlink 刪除文件 
10. fs.createReadStream  從文件流中讀取數據
11. fs.createWriteStream 寫入文件流
12. pipe 管道流
13. fs.access 判斷目錄、文件是否存在(讀寫權限)

var fs=require('fs'); //fs是node.js的核心模塊,不用下載安裝,可以直接引入

    1. fs.stat 檢測是文件還是目錄 fs.statSync()同步獲取stats對象,通過返回值接收。
fs.stat('html',function(error,stats){
    if(error){
        console.log(error);
        return false;
    }
    console.log('文件:'+stats.isFile());
    console.log('目錄:'+stats.isDirectory());
})
    1. fs.mkdir 創建目錄
fs.mkdir('css',function(error){
    if(error){
        console.log(error);
        return false;
    }
    console.log('創建目錄成功');
})
    1. fs.writeFile 寫入文件(會覆蓋之前的內容)(文件不存在就創建) utf8參數可以省略
fs.writeFile('123.txt','你好nodejs 覆蓋','utf8',function(error){
    if(error){
        console.log(error);
        return false;
    }
    console.log('寫入成功');
})
    1. fs.appendFile 追加文件
fs.appendFile('123.txt','這是寫入的內容\n',function(error){
    if(error){
        console.log(error);
        return false;
    }
    console.log('寫入成功');
})
  • 5.fs.readFile 讀取文件
fs.readFile('123.txt',function(error,data){
    if(error){
        console.log(error);
        return false;
    }
    //console.log(data);  //data是讀取的十六進制的數據。  也可以在參數中加入編碼格式"utf8"來解決十六進制的問題;
    console.log(data.toString());  //讀取出所有行的信息  
})
  • 6.fs.readdir 讀取目錄下第一級內容 把目錄下面的文件和文件夾都獲取到。
fs.readdir('html',function(error,data){
    if(error){
        console.log(error);
        return false;
    }
    console.log(data);  //data是數組類型,包含文件夾以及文件的名字(只有第一級目錄內容)。拿到一個文件夾下面的所有目錄  
})
  • 7.fs.rename 重命名 1.改名 2.剪切文件(移動)
fs.rename('html/index.html','html/news.html',function(error){
    if(error){
        console.log(error);
        return false;
    }
    console.log('修改名字成功');
})
    1. fs.rmdir 刪除目錄 rmdir 這個方法只能刪除目錄,不能刪除文件
fs.rmdir('abc目錄',function(error){
    if(error){
        console.log(error);
        return false;
    }
    console.log('刪除目錄成功');
})
    1. fs.unlink刪除文件
fs.unlink('index.txt',function(error){
    if(error){
        console.log(error);
        return false;
    }
    console.log('刪除文件成功');
})
    1. fs.createReadStream 從文件流中讀取數據,讀取的文件比較大時建議用流的方式讀取,文件比較大會多次讀取。
var fileReadStream = fs.createReadStream( 'data1.json');
var str = '';
fileReadStream.on('data', (data) => {
    console.log("接收到" + data.length);   //文件比較大時,會多次讀取,多次執行該回調函數  
str += data;
})
fileReadStream.on('end', () => {
    console.log(" --- 結束 ---");
console.log( str );
})
fileReadStream.on('error', (error) => {
    console.log(error)
})
    1. fs.createWriteStream 寫入文件流
var fs = require("fs");
var data  = "我是從數據庫獲取的數據,我要保存起來";
var writerStream = fs.createWriteStream('output.txt');
writerStream.write( data , 'UTF8' );
writerStream.end();  //標記文件末尾  結束寫入流,釋放資源  
writerStream.on( 'finish',  function() {
    console.log("寫入完成。");
});
writerStream.on( 'error',  function(error){
    console.log(error.stack);
});
console.log("程序執行完畢");
    1. pipe 管道流
var fs = require("fs");
var readerStream = fs.createReadStream( 'input.txt');
var writerStream = fs.createWriteStream( 'output.txt');
readerStream.pipe( writerStream );
console.log("程序執行完畢");
    1. fs.access 判斷目錄、文件是否存在(讀寫權限)
var  fs = require('fs');
fs.access('package.json',(err)=>{
    console.log(err ?  '目錄/文件不存在': '文件存在,可以進行讀寫');
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章