亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Node.js文件操作方法匯總

2019-11-20 10:21:47
字體:
來源:轉載
供稿:網友

Node.js和其他語言一樣,也有文件操作。先不說node.js中的文件操作,其他語言的文件操作一般也都是有打開、關閉、讀、寫、文件信息、新建刪除目錄、刪除文件、檢測文件路徑等。在node.js中也是一樣,也都是這些功能,可能就是api與其他語言不太一樣。

一、同步、異步打開關閉

/** * Created by Administrator on 2016/3/21. */var fs=require("fs");//同步讀 fs.openSync = function(path, flags, mode)//模塊fs.js文件中如上面定義的openSync 函數3個參數//.1.path 文件路徑//2.flags 打開文件的模式//3.model 設置文件訪問模式//fd文件描述var fd=fs.openSync("data/openClose.txt",'w');//fs.closeSync = function(fd)fs.closeSync(fd);//異步讀寫//fs.open = function(path, flags, mode, callback_)//fs.close = function(fd, callback)fs.open("data/openColse1.txt",'w',function(err,fd) {  if (!err)  {    fs.close(fd,function(){      console.log("closed");    });  }});

其中的flags其他語言也會有.其實主要分3部分 r、w、a.和C中的差不多。

1.r ―― 以只讀方式打開文件,數據流的初始位置在文件開始
2.r+ ―― 以可讀寫方式打開文件,數據流的初始位置在文件開始
3.w ――如果文件存在,則將文件長度清0,即該文件內容會丟失。如果不存在,則嘗試創建它。數據流的初始位置在文件開始
4.w+ ―― 以可讀寫方式打開文件,如果文件不存在,則嘗試創建它,如果文件存在,則將文件長度清0,即該文件內容會丟失。數據流的初始位置在文件開始
5.a ―― 以只寫方式打開文件,如果文件不存在,則嘗試創建它,數據流的初始位置在文件末尾,隨后的每次寫操作都會將數據追加到文件后面。
6.a+ ――以可讀寫方式打開文件,如果文件不存在,則嘗試創建它,數據流的初始位置在文件末尾,隨后的每次寫操作都會將數據追加到文件后面。

二、讀寫

1.簡單文件讀寫

/** * Created by Administrator on 2016/3/21. */var fs = require('fs');var config = {  maxFiles: 20,  maxConnections: 15,  rootPath: "/webroot"};var configTxt = JSON.stringify(config);var options = {encoding:'utf8', flag:'w'};//options 定義字符串編碼 打開文件使用的模式 標志的encoding、mode、flag屬性 可選//異步//fs.writeFile = function(path, data, options, callback_)//同步//fs.writeFileSync = function(path, data, options)fs.writeFile('data/config.txt', configTxt, options, function(err){  if (err){    console.log("Config Write Failed.");  } else {    console.log("Config Saved.");    readFile();  }});function readFile(){  var fs = require('fs');  var options = {encoding:'utf8', flag:'r'};  //異步  //fs.readFile = function(path, options, callback_)  //同步  //fs.readFileSync = function(path, options)  fs.readFile('data/config.txt', options, function(err, data){    if (err){      console.log("Failed to open Config File.");    } else {      console.log("Config Loaded.");      var config = JSON.parse(data);      console.log("Max Files: " + config.maxFiles);      console.log("Max Connections: " + config.maxConnections);      console.log("Root Path: " + config.rootPath);    }  });}
"C:/Program Files (x86)/JetBrains/WebStorm 11.0.3/bin/runnerw.exe" F:/nodejs/node.exe SimpleReadWrite.jsConfig Saved.Config Loaded.Max Files: 20Max Connections: 15Root Path: /webrootProcess finished with exit code 0

2.同步讀寫

/** * Created by Administrator on 2016/3/21. */var fs = require('fs');var veggieTray = ['carrots', 'celery', 'olives'];fd = fs.openSync('data/veggie.txt', 'w');while (veggieTray.length){  veggie = veggieTray.pop() + " ";  //系統api   //fd 文件描述 第二個參數是被寫入的String或Buffer  // offset是第二個參數開始讀的索引 null是表示當前索引  //length 寫入的字節數 null一直寫到數據緩沖區末尾  //position 指定在文件中開始寫入的位置 null 文件當前位置  // fs.writeSync(fd, buffer, offset, length[, position]);  // fs.writeSync(fd, string[, position[, encoding]]);  //fs.writeSync = function(fd, buffer, offset, length, position)  var bytes = fs.writeSync(fd, veggie, null, null);  console.log("Wrote %s %dbytes", veggie, bytes);}fs.closeSync(fd);var fs = require('fs');fd = fs.openSync('data/veggie.txt', 'r');var veggies = "";do {  var buf = new Buffer(5);  buf.fill();  //fs.readSync = function(fd, buffer, offset, length, position)  var bytes = fs.readSync(fd, buf, null, 5);  console.log("read %dbytes", bytes);  veggies += buf.toString();} while (bytes > 0);fs.closeSync(fd);console.log("Veggies: " + veggies);
"C:/Program Files (x86)/JetBrains/WebStorm 11.0.3/bin/runnerw.exe" F:/nodejs/node.exe syncReadWrite.jsWrote olives 7bytesWrote celery 7bytesWrote carrots 8bytesread 5bytesread 5bytesread 5bytesread 5bytesread 2bytesread 0bytesVeggies: olives celery carrots     Process finished with exit code 0

3.異步讀寫 和同步讀寫的參數差不多就是多了callback

/** * Created by Administrator on 2016/3/21. */var fs = require('fs');var fruitBowl = ['apple', 'orange', 'banana', 'grapes'];function writeFruit(fd){  if (fruitBowl.length){    var fruit = fruitBowl.pop() + " ";   // fs.write(fd, buffer, offset, length[, position], callback);   // fs.write(fd, string[, position[, encoding]], callback);   // fs.write = function(fd, buffer, offset, length, position, callback)    fs.write(fd, fruit, null, null, function(err, bytes){      if (err){        console.log("File Write Failed.");      } else {        console.log("Wrote: %s %dbytes", fruit, bytes);        writeFruit(fd);      }    });  } else {    fs.close(fd);    ayncRead();  }}fs.open('data/fruit.txt', 'w', function(err, fd){  writeFruit(fd);});function ayncRead(){  var fs = require('fs');  function readFruit(fd, fruits){    var buf = new Buffer(5);    buf.fill();    //fs.read = function(fd, buffer, offset, length, position, callback)    fs.read(fd, buf, 0, 5, null, function(err, bytes, data){      if ( bytes > 0) {        console.log("read %dbytes", bytes);        fruits += data;        readFruit(fd, fruits);      } else {        fs.close(fd);        console.log ("Fruits: %s", fruits);      }    });  }  fs.open('data/fruit.txt', 'r', function(err, fd){    readFruit(fd, "");  });}
"C:/Program Files (x86)/JetBrains/WebStorm 11.0.3/bin/runnerw.exe" F:/nodejs/node.exe asyncReadWrite.jsWrote: grapes 7bytesWrote: banana 7bytesWrote: orange 7bytesWrote: apple 6bytesread 5bytesread 5bytesread 5bytesread 5bytesread 5bytesread 2bytesFruits: grapes banana orange apple  Process finished with exit code 0

4.流式讀寫

/** * Created by Administrator on 2016/3/21. */var fs = require('fs');var grains = ['wheat', 'rice', 'oats'];var options = { encoding: 'utf8', flag: 'w' };//從下面的系統api可以看到 createWriteStream 就是創建了一個writable流//fs.createWriteStream = function(path, options) {//  return new WriteStream(path, options);//};////util.inherits(WriteStream, Writable);//fs.WriteStream = WriteStream;//function WriteStream(path, options)var fileWriteStream = fs.createWriteStream("data/grains.txt", options);fileWriteStream.on("close", function(){  console.log("File Closed.");  //流式讀  streamRead();});while (grains.length){  var data = grains.pop() + " ";  fileWriteStream.write(data);  console.log("Wrote: %s", data);}fileWriteStream.end();//流式讀function streamRead(){  var fs = require('fs');  var options = { encoding: 'utf8', flag: 'r' };  //fs.createReadStream = function(path, options) {  //  return new ReadStream(path, options);  //};  //  //util.inherits(ReadStream, Readable);  //fs.ReadStream = ReadStream;  //  //function ReadStream(path, options)  //createReadStream 就是創建了一個readable流  var fileReadStream = fs.createReadStream("data/grains.txt", options);  fileReadStream.on('data', function(chunk) {    console.log('Grains: %s', chunk);    console.log('Read %d bytes of data.', chunk.length);  });  fileReadStream.on("close", function(){    console.log("File Closed.");  });}
"C:/Program Files (x86)/JetBrains/WebStorm 11.0.3/bin/runnerw.exe" F:/nodejs/node.exe StreamReadWrite.jsWrote: oats Wrote: rice Wrote: wheat File Closed.Grains: oats rice wheat Read 16 bytes of data.File Closed.Process finished with exit code 0

 個人覺得像這些api用一用感受一下就ok了,遇到了會用就行了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91av在线免费观看视频| 久久香蕉国产线看观看网| 中文字幕一区二区三区电影| 亚洲国产中文字幕在线观看| 久久久久国产精品一区| 日韩高清电影好看的电视剧电影| 精品无人区乱码1区2区3区在线| 国产精品日韩精品| 日韩三级影视基地| 日本不卡视频在线播放| 久久久久久久一区二区| 欧美成人一区二区三区电影| 亚洲最大成人免费视频| 久久精品人人爽| 欧美一二三视频| 国产精品一区二区三区久久| 国产成人综合一区二区三区| 久久久久久久国产精品视频| 97精品一区二区三区| 亚洲老头老太hd| 亚洲bt天天射| 久久亚洲精品小早川怜子66| 欧美电影免费观看| 亚洲天堂开心观看| 精品无人国产偷自产在线| 在线观看欧美视频| 国产日韩欧美视频在线| 国产精品盗摄久久久| 欧美激情性做爰免费视频| 精品国产精品自拍| 911国产网站尤物在线观看| 日韩在线资源网| 中文字幕欧美日韩va免费视频| 韩国国内大量揄拍精品视频| 韩国精品美女www爽爽爽视频| 欧美极品少妇全裸体| 久久久久久久久久久成人| 毛片精品免费在线观看| 国产成人激情小视频| 亚洲精选在线观看| 日韩麻豆第一页| 亚洲影视九九影院在线观看| 久久久成人的性感天堂| 日韩欧美黄色动漫| 国产精品免费久久久久久| 国产成人精品av| 青青在线视频一区二区三区| 亚洲一区二区免费在线| 久久国产精品影视| 亚洲一区亚洲二区| 欧美国产日韩免费| 久久理论片午夜琪琪电影网| 国产精品va在线| 国产精品电影网站| 久久久噜噜噜久久| 亚洲欧洲黄色网| 青青久久av北条麻妃海外网| 日韩av手机在线观看| 97超碰国产精品女人人人爽| 日韩精品在线观看一区二区| 国产精品久久久久久久9999| 国产精品麻豆va在线播放| 亚洲男人天天操| 性日韩欧美在线视频| 亚洲第一精品夜夜躁人人爽| 成人免费福利视频| 成人黄色av网站| 欧美影院成年免费版| 成人激情电影一区二区| 久久久久999| 亚洲国产精久久久久久久| www.亚洲一二| 欧美理论电影在线观看| 欧美激情在线播放| 成人精品视频在线| 久久久久久久成人| 韩曰欧美视频免费观看| 97色在线播放视频| 久久香蕉精品香蕉| 国产欧美最新羞羞视频在线观看| 亚洲激情自拍图| 韩日精品中文字幕| 亚洲人成网在线播放| 久久久亚洲福利精品午夜| 亚洲一区二区三区视频播放| 97久久久久久| 国产亚洲精品久久久| 伊人亚洲福利一区二区三区| 国产亚洲成av人片在线观看桃| 高清在线视频日韩欧美| 日本精品性网站在线观看| 日本精品免费一区二区三区| 欧美极品在线播放| 欧美成人午夜剧场免费观看| 欧美黑人一区二区三区| 欧美成人剧情片在线观看| 中文字幕亚洲欧美日韩2019| 久久久久久免费精品| 亚洲国产精品小视频| 欧美激情第一页xxx| 亚洲精品一区中文字幕乱码| 韩曰欧美视频免费观看| 国产日韩在线看片| 日韩在线视频中文字幕| 亚洲精品成人久久电影| 国产区精品在线观看| 少妇高潮久久久久久潘金莲| 国产精品视频自拍| 国产精品一区二区三区在线播放| 国产91在线播放九色快色| 亚洲国产黄色片| 国产精品美女在线观看| 欧美孕妇与黑人孕交| xxxxxxxxx欧美| 久久久久久久久久久亚洲| 精品成人69xx.xyz| 96精品视频在线| 日韩美女av在线免费观看| 国产裸体写真av一区二区| 热99精品里视频精品| 日韩精品福利网站| 欧美性猛交xxxxx免费看| 国产美女91呻吟求| 国产福利成人在线| 18一19gay欧美视频网站| 宅男66日本亚洲欧美视频| 国产精品久久久久久久久久| 亚洲欧美精品中文字幕在线| 91欧美日韩一区| 午夜剧场成人观在线视频免费观看| 国产成人拍精品视频午夜网站| 2019中文字幕在线观看| 精品视频www| 日韩美女av在线| 成人中文字幕+乱码+中文字幕| 中文字幕在线看视频国产欧美在线看完整| 亚洲欧美国产精品va在线观看| 欧洲亚洲妇女av| 久久国产精品久久久久久久久久| 最近2019中文字幕第三页视频| 亚洲国产精品嫩草影院久久| 国产日韩一区在线| 91精品久久久久| 欧美电影在线观看完整版| 成人av在线亚洲| 亚洲精品ady| 色哟哟入口国产精品| 国内精品久久久久影院 日本资源| 日本久久久a级免费| 国产精品成人va在线观看| 777777777亚洲妇女| 国产精品免费一区二区三区都可以| 亚洲精品98久久久久久中文字幕| 国自产精品手机在线观看视频| 国产亚洲精品久久久久动| 日韩中文在线观看| 久久久在线免费观看| 青青草一区二区| 国产亚洲免费的视频看| 亚洲一区二区三区成人在线视频精品| 国产三级精品网站| 日韩女优人人人人射在线视频| 国产91对白在线播放| 日韩电影在线观看免费|