nodejs-fsモジュール

11034 ワード

この文章は「nodeJS探索の道」を収録しています.
本文の練習は全部入れました.https://github.com/webxiaoma/nodeJS-demos のファイルにあります.
前言
fsモジュールはnodeJSで比較的重要なモジュールとして計算されています.ここでは主にnodejs中fsモジュールの基礎知識であり、目的はfsモジュールの基本的な役割を理解することです.使用前にまずfsモジュールを導入し、本明細書ではconst fs=require('fs')で導入することを約束する.詳細なAPIは公式サイトfsモジュールにアクセスしてください.
同期と非同期
fsモジュール内の方法は、一般的に、ファイルの読み込みなどの同期と非同期の方法があります.
非同期の方法:
fs.readFile('./test.txt',(err,data)=>{
    if(err) throw err;
    console.log(data)
})

同期方法
let SyncFile = fs.readFileSync( './test.txt','utf-8');
cosnole.log(SyncFile);
一般的な同期方法は、非同期方法名の後にSyncという単語を加えたものである.
ファイル処理
1.ファイルの内容を読み取るfs.readFile(path[, options], callback)パラメータ:
  • path | | | ファイル名またはファイル記述子.
  • options |
  • encoding | は、デフォルトはnullです.
  • フラグは、デフォルトでは“r”である.
  • calback
  • er
  • data |
  • fs.readFile('./test.txt',function(err,data){
        if(err){
            throw err;
        }
        console.log(data) 
        console.log(data.toString())
    })
    2.ファイルの内容を書き込むfs.writeFile(file, data[, options], callback)は、非同期的にファイルにデータを書き込み、ファイルが既に存在する場合は、ファイルを代替する.
  • file | | ファイル名またはファイル記述子
  • data | |
  • options |
  • encoding | デフォルト=「utf 8」
  • mode デフォルト=0 o 666
  • フラグデフォルト=w'
  • calback
  • fs.writeFile('./write.txt','test',err =>{
        if(err) throw err;
        console.log("    ");
    
        fs.readFile('./write.txt','utf-8',(err,data) =>{
            if(err) throw err;
    
            console.log('    :'+ data);
        })
    })
    3.ファイルの内容を削除するfs.unlink(path, callback)
  • path | |
  • calback
  • er
  • fs.unlink('./delete.txt',err=>{
       assert.ifError(err);
       console.log('     :delete.txt')
    })
    4.追加ファイルの内容fs.appendFile(file, data[, options], callback)が追加コンテンツのファイルが存在しない場合、そのファイルを作成する.
  • file | | ファイル名またはファイル記述子
  • data |
  • options |
  • encoding | デフォルトは「utf 8」
  • です.
  • mode のデフォルトは0 o 666
  • です.
  • フラグは、デフォルトでは‘a’
  • である.
  • calback
  • er
  • fs.appendFile('./add.txt','     ','utf8',(err)=>{
       assert.ifError(err);
       console.log(fs.readFileSync('./add.txt','utf8')) 
    })
    5.書類の内容を切り取る
    ファイルの内容を切り取る前に、ファイルを開いて、ファイルの内容を読み取る方法も話します.
    ファイルを開く:fs.openファイルの内容を読み取る:fs.readファイルの内容を書き込む:fs.writeファイルを閉じる:fs.close彼らとreadFilewriteFileとの違いは、最下階の比較であり、fs.readfs.writefs.openに依頼して、ファイルを開けてファイルのハンドルを得て、ファイルのハンドルに基づいて読み、書きます.実は私達が使っているのはreadFilewriteFileです.例を見てみます.
    fs.open('./open.txt','a+',(err,fd)=>{
        if(err) throw err;
        console.log("     ");
    
        let readBuffer = new Buffer.alloc(30);
        let writeBuffer = new Buffer.from(" add content")
        fs.write(fd,writeBuffer,0,writeBuffer.length,0,(err,bytesWritten,buffer)=>{
            if(err) throw err;
    
            console.log(`    ,     :${bytesWritten},      :${buffer}`);
            //    ,     : 12,      :add content
    
            fs.read(fd,readBuffer,0,30,0,(err, bytesRead, buffer)=>{
                if(err) throw err;
                console.log(bytesRead) // 17
                console.log(buffer.toString());// last add content
    
                //   
                fs.close(fd);
    
             })
    
    
        })
    
    
    })
    ここで説明したファイルの内容を切り取る方法はfs.open方法に基づいています.fs.ftruncate(fd[, len], callback)
  • fd
  • len デフォルト=0
  • calback
  • er
  • let fd = fs.openSync('open.txt','r+');
    
    fs.ftruncate(fd,5,(err)=>{
        assert.ifError(err);
        console.log("     :" +fs.readFileSync('open.txt','utf-8'));
        //     :last
         fs.close(fd);
    });
    
    ディレクトリ操作
    1.ディレクトリの作成
    ファイルが既に存在するとエラーが発生します.
    fs.mkdir('./newdir',function(err){
    
        if(err) throw err
        console.log("make dir success")
    })
    2.ディレクトリの読み込み
    fs.readdir('./newdir',(err,files)=>{
         if(err) throw err;
         // files      
         console.log(Array.isArray(files))
         console.log("      :"+ files);
    })
    3.ディレクトリの削除
    ディレクトリを削除すると、空きがないとエラーが発生します.
    fs.rmdir('./delete_dir',function(err){
       if(err) throw err;
       console.log('delete dir success')
    
    })
    ファイルの常用モードを読みだします.
    modeはファイルを作成する時にファイルに権限を設定するために使用します.デフォルト0666
    フラグ:
    'r' -            。
    'r+' -          。
    'rs' -              。                。
    'rs+' -         ,         。
    //  :    fs.open           。           fs.openSync()。
    
    'w' -          ,          
    'wx' -   ' w ''w+' -          ,          
    'wx+' -   ' w+ ''a' -          ,          
    'ax' -   ' a ''a+' -            ,          
    'ax+' -   ' a+ '
    終了
    詳細なAPIはnode公式サイトを訪問してください.