[先端]nodejsファイルシステム解析


前提:nodejs環境が必要です.
一、カタログ
1. readFileSync()
2.writeFileSync()
3.exists(path、calback)
4.mkdir()、writeFile()、readFile()
5.mkdirSync()、writeFileSync()、readFileSync()
6.readdir()
7.stat()
8.ウォッチfile()、unwatch file()
9.createReadStream()
10.createWriteStream()
二、具体的な章(jsスクリプトはtest.jsファイルに書いてあります. 1.txtはテスト用です.
1.readFileSync()同期してファイルを読み込む(test.js) 1.txt{changed改行} ハローワールド)
var fs = require('fs');  //           var text = fs.readFileSync('1.txt', function() {
    text.slit(/\r?
/
).forEach(function(line) { console.log(line); // :changed hello world }); });
2.writeFileSync()同期書込みファイル(test.js) 1.txt)
var fs = require('fs');  //           fs.writeFileSync('1.txt', 'hello world !', 'utf-8');  // 1.txt        hello world
3.exists(path、calback)は経路が存在するかどうかを判断する.
var fs = require('fs');  //          var util = require('util');  //       util    fs.exists('/hello', function(exists) {
    util.debug(exists ? 'hello    ' : 'hello     ')
});
ディレクトリを削除:
var fs = require('fs');  //           fs.exists('/hello', function(exists) {
    if(exists) {
        fs.rmdir('hello');  //   hello    } else {
        console.log('hello      !');
    }
});
4.mkdir()、readFile()
生成ディレクトリ:
var fs = require('fs');  //           fs.mkdir('hello', 0777, function(err) {
    if(err) throw err;
});
ファイルを読み込み:
var fs = require('fs');  //           fs.readFile('1.txt', 'utf-8', function(err, data) {
    if(err) throw err;
    console.log(data);  //   1.txt   });
5.mkdirSync()、writeFileSync()、readFileSync()はディレクトリを作成し、ファイルに書き込み、内容を同期させる
var fs = require('fs');  //           fs.mkdirSync('hello', 0777);  //      fs.writeFileSync('hello/2.txt', 'hello node !');  //        2.txt       var content = fs.readFileSync('hello/2.txt', 'utf-8');  //      2.txt    console.log('      :');
console.log('2.txt   :' + data);  
6.readdir()ディレクトリを読み込む
var fs = require('fs');  //           // process.cwd()   node     ,     cd /d        cwd: change work directory fs.readdir(process.cwd(), function (err, files) {
    if (err) {
        console.log(err);
        return;
    }

    var count = files.length;  //      +        var results = {};

    files.forEach(function (filename) {
        fs.readFile(filename, function (data) {
            results[filename] = data;

            console.log(results);  //   :          count--;
            if (count <= 0) {
                //       0      }
        });
    });
});
7.stat()判断パラメータはファイルですか?それともディレクトリですか?
var fs = require('fs');  //           /*    hello   ( hello/sub hello/2.txt ) */  fs.readdir('./hello', function(err, files) {
    if(err) throw err;

    console.log(files);  //   :hello             files.forEach(function(file) {
        fs.stat('./hello/' + file, function(err, stats) {
            if(stats.isFile()) {
                console.log('%s is file ', file);
            } else if(stats.isDirectory()) {
                console.log('%s is a directory ', file);
            } else {
                console.log('stats: %s', JSON.stringify(stats));
            }
        });
    });
});
8.ウォッチfile()は、一つのファイルを待ち受けています.このファイルが変化すると自動的にコールバック関数が起動します.
var fs = require('fs');  //           fs.watchFile('1.txt', function(curr, prev) {
    console.log(curr.mtime);
    console.log(prev.mtime);
});

fs.writeFile('1.txt', 'changed', function(err) {
    if(err) throw err;

    console.log('file write complete !');
});
9.createReadStream()読取動作のデータストリームを作成する(大きなファイルによく使われる)
var fs = require('fs');  //           /*   1.txt   hello world ! */  function readLines(input, func) {
    var remaining = '';

    input.on('data', function(data) {
        remaining += data;
        var index = remaining.indexOf('
'); var last = 0; while(index > -1) { var line = remaining.substring(last, index); // substring(start, stop) : , last = index + 1; func(line); index = remaining.indexOf('
', last); // indexOf(searchvalue, fromindex) : , } remaining = remaining.substring(last); }); input.on('end', function() { if(remaining.length > 0) { func(remaining); } }); } function func(data) { console.log('Line: ' + data); // :hello world ! } var input = fs.createReadStream('1.txt'); readLines(input, func);
10.createWriteStream()データストリームを書き込む対象を作成します.end()書き込みを終了します.
var fs = require('fs');  //           var out = fs.createWriteStream('1.txt', {encoding: 'utf-8'});
out.write('hello node !');  // 1.txt      hello node ! out.end();
三、まとめ
この内容は参照です http://javascript.ruanyifeng.com/nodejs/fs.html (牛Bの前端の文章)自分の理解を加えて書き直しました.
ありがとうございます