欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js中常規(guī)的文件操作總結

 更新時間:2016年10月13日 09:20:54   作者:子匠_Zijor  
關于Node.js中文件的常規(guī)操作,主要的就是fs這個模塊。對于node.js中fs模塊提供的API很多,但是其所有的方法均有同步和異步的形式。那么下面這篇文章我們就來詳細介紹下關于Node.js中文件的常規(guī)操作,有需要的朋友們可以參考借鑒。

前言

Node.js 提供一組類似 UNIX(POSIX)標準的文件操作API。 Node 導入文件系統(tǒng)模塊(fs)語法如下所示:

var fs = require("fs")

fs模塊是文件操作的封裝,它提供了文件的讀取、寫入、更名、刪除、遍歷目錄、鏈接等POSIX文件系統(tǒng)操作。與其他模塊不同的是,fs模塊中所有的操作都提供了異步和同步的兩個版本,例如讀取文件內(nèi)容的函數(shù)有異步的fs.readFile()和同步的fs.readFileSync()

一. 目錄操作

1. 創(chuàng)建目錄

創(chuàng)建目錄的語法如下:

fs.mkdir(path[, mode], callback) // 異步方法
fs.mkdirSync(path[, mode]) // 同步方法

示例:

var fs = require("fs");

// 在該文件的同一目錄下建立test目錄
fs.mkdir('test',function(err){
 if (err) {
  return console.error(err);
 }
 console.log("目錄創(chuàng)建成功。");
});

2. 讀取目錄

讀取目錄的語法如下:

fs.readdir(path, callback)
fs.readdirSync(path)

     1、path: 文件路徑;

     2、callback: 回調(diào)函數(shù),回調(diào)函數(shù)帶有兩個參數(shù)err, files。err為錯誤信息,files為目錄下的文件數(shù)組列表。

示例:

var fs = require("fs");

fs.readdir("test/",function(err, files){
 if (err) {
  return console.log(err);
 }
 files.forEach( function (file){
  console.log( file );
 });
});

3. 刪除目錄

刪除目錄的語法如下:

fs.rmdir(path, callback)
fs.rmdirSync(path)

示例:

var fs = require("fs");

fs.rmdir("test/ewe",function(err){
 if (err) {
  return console.log(err);
 }

 fs.readdir("/test/",function(err, files){
  if (err) {
   return console.error(err);
  }
  files.forEach( function (file){
   console.log( file );
  });
 });
});

二. 文件操作

1. 打開文件

打開文件的語法如下:

fs.open(path, flags, [mode], [callback(err, fd)])

其中,path為文件的路徑,flags指文件的讀取方式,mode參數(shù)用于創(chuàng)建文件時給文件指定權限,默認是0666.回掉函數(shù)將會傳遞一個文件描述符fd。

flags的常用參數(shù)值如下:

mode參數(shù)表示的文件權限是POSIX操作系統(tǒng)中對文件讀取和訪問權限的規(guī)范,通常用一個八進制數(shù)來表示。例如0754表示文件所有者的權限是7(讀、寫、執(zhí)行),同組的用戶權限是5(讀、執(zhí)行),其他用戶的權限是4(讀)。

示例:

var fs = require('fs');

fs.open("test.txt","w",0644,function(e,fd){
 try{
  fs.write(fd,"first fs!",0,'utf8',function(e){
   fs.closeSync(fd);
  })
 } catch(E) {
  throw e;
 }

});

2. 寫入文件

寫入文件的語法如下:

fs.writeFile(file, data[, options], callback)
fs.writeFileSync(file, data[, options])

示例:

var fs = require("fs");

fs.writeFile('test.txt', 'hello world!', function(err) {
 if (err) {
  return console.log(err);
 }

 fs.readFile('test.txt', function (err, data) {
  if (err) {
   return console.log(err);
  }
  console.log("異步讀取文件數(shù)據(jù): " + data.toString());
 });
});

3. 讀取文件

讀取文件的語法如下:

fs.read(fd, buffer, offset, length, position, callback)
fs.readSync(fd, buffer, offset, length, position)

fs.readFile(file[, options], callback)
fs.readFileSync(file[, options])

其中,fs.read()fs.readSync()的參數(shù)如下:

     fd – 通過 fs.open() 方法返回的文件描述符;

     buffer – 數(shù)據(jù)寫入的緩沖區(qū);

     offset – 緩沖區(qū)寫入的寫入偏移量;

     length – 要從文件中讀取的字節(jié)數(shù);

     position – 文件讀取的起始位置,如果 position 的值為 null,則會從當前文件指針的位置讀??;

     callback – 回調(diào)函數(shù),有三個參數(shù)err, bytesRead, buffer,err 為錯誤信息, bytesRead 表示讀取的字節(jié)數(shù),buffer 為緩沖區(qū)對象;

fs.read()的示例如下:

var fs = require('fs'); 
fs.open('test.txt', 'r', function(err, fd) { 
if (err) { 
console.error(err); 
return; 
} 
var buf = new Buffer(8); 
fs.read(fd, buf, 0, 8, null, function(err, bytesRead, buffer) { 
if (err) { 
console.error(err); 
return; 
} 
console.log('bytesRead: ' + bytesRead); 
console.log(buffer); 
}) 
});

fs.readFile()的示例如下:

var fs = require('fs'); 
fs.readFile('test.txt', function(err, data) { 
 if (err) { 
  console.log(err); 
 } else { 
  console.log(data.toString()); 
 } 
});

4. 關閉文件

關閉文件的語法如下:

fs.close(fd, callback)
fs.closeSync(fd)

5. 刪除文件

刪除文件的語法如下:

fs.unlink(path, callback)
fs.unlinkSync(path)

示例:

var fs = require("fs");

fs.unlink('test.txt', function(err) {
 if (err) {
  return console.log(err);
 }
 console.log("文件刪除成功!");
});

6. 確定文件是否存在

確定文件是否存在的語法如下:

fs.exists(path, callback)
fs.existsSync(path)

示例:

var fs = require('fs');

fs.exists('test.txt', function (exists) {
 if(exists) {
  console.log("文件存在!");
 }else {
  console.log("文件不存在!");
 }
});

7. 追加內(nèi)容至文件

fs.appendFile(file, data[, options], callback)
fs.appendFileSync(file, data[, options])

示例:

var fs = require('fs');

fs.appendFile("test.txt", "append content", function (err) {
 if (err) {
  console.log(err);
 }else {
  fs.readFile('test.txt', function(err, data) { 
   if (err) { 
    console.log(err); 
   } else { 
    console.log(data.toString()); 
   } 
  }); 
 }
});

總結

更多的文件系統(tǒng)操作可查看Node.js的fs模塊的官方API文檔,以上就是關于Node.js中文件常規(guī)操作的全部內(nèi)容,希望這篇文章對大家學習或者使用Node.js能有所幫助,如果有疑問大家可以留言交流。

相關文章

  • 從零開始學習Node.js系列教程之SQLite3和MongoDB用法分析

    從零開始學習Node.js系列教程之SQLite3和MongoDB用法分析

    這篇文章主要介紹了Node.js SQLite3和MongoDB用法,結合實例形式分析了SQLite3和MongoDB數(shù)據(jù)庫的初始化、連接、查詢等操作的實現(xiàn)技巧與相關注意事項,需要的朋友可以參考下
    2017-04-04
  • Node.js和MongoDB實現(xiàn)簡單日志分析系統(tǒng)

    Node.js和MongoDB實現(xiàn)簡單日志分析系統(tǒng)

    這篇文章主要介紹了Node.js和MongoDB實現(xiàn)簡單日志分析系統(tǒng),本文給出了服務器端、客戶端、圖表生成、Shell自動執(zhí)行等功能的實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • nodejs 提示‘xxx’ 不是內(nèi)部或外部命令解決方法

    nodejs 提示‘xxx’ 不是內(nèi)部或外部命令解決方法

    本文介紹了node.js包管理工具npm安裝模塊后,無法通過命令行執(zhí)行命令,提示‘xxx’ 不是內(nèi)部或外部命令的解決方法,給需要的小伙伴參考下。
    2014-11-11
  • 談談node.js中的模塊系統(tǒng)

    談談node.js中的模塊系統(tǒng)

    這篇文章主要介紹了node.js中的模塊系統(tǒng),幫助大家更好的理解和學習node.js框架,感興趣的朋友可以了解下
    2020-09-09
  • Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫入文件流的方法

    Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫入文件流的方法

    這篇文章主要介紹了Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫入文件流的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • 詳解Node中導入模塊require和import的區(qū)別

    詳解Node中導入模塊require和import的區(qū)別

    本篇文章主要介紹了詳解Node中導入模塊require和import的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • node中的cookie的具體使用

    node中的cookie的具體使用

    這篇文章主要介紹了node中的cookie的具體使用,詳細的介紹了什么是cookie和cookie的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • node ftp上傳文件夾到服務器案例詳解

    node ftp上傳文件夾到服務器案例詳解

    這篇文章主要介紹了node ftp上傳文件夾到服務器的視線方法,結合具體實例分析了node.js調(diào)用ftp模塊進行文件上傳的相關配置、連接、path路徑操作與文件傳輸實現(xiàn)方法,需要的朋友可以參考下
    2023-04-04
  • node+express+axios實現(xiàn)單文件上傳功能

    node+express+axios實現(xiàn)單文件上傳功能

    這篇文章主要為大家詳細介紹了node+express+axios實現(xiàn)單文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Node.js對MongoDB數(shù)據(jù)庫實現(xiàn)模糊查詢的方法

    Node.js對MongoDB數(shù)據(jù)庫實現(xiàn)模糊查詢的方法

    模糊查詢是數(shù)據(jù)庫的基本操作之一,下面這篇文章主要給大家介紹了利用Node.js對MongoDB數(shù)據(jù)庫實現(xiàn)模糊查詢的方法教程,文中給出了詳細的介紹和示例代碼,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-05-05

最新評論