[先端]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改行} ハローワールド)
生成ディレクトリ:
この内容は参照です http://javascript.ruanyifeng.com/nodejs/fs.html (牛Bの前端の文章)自分の理解を加えて書き直しました.
ありがとうございます
一、カタログ
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の前端の文章)自分の理解を加えて書き直しました.
ありがとうございます