一頭扎進Node(三) - File System

file.open:異步模式打開文件

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

案例代碼如下:

var fs = require('fs');/*** 參數說明:*  1.path:要打開的文件的文件路徑*  2.flags:打開文件的方式 讀/寫*      r:只讀方式打開文件,如果文件不存在會拋出異常*      r+:讀寫模式打開文件,如果文件不存在會拋出異常*      rs:以同步只讀的方式打開文件,如果文件不存在會拋出異常*      rs+:以同步讀寫的方式打開文件,如果文件不存在會拋出異常*      w:以寫文件的模式打開文件,如果文件不存在則創建文件,如果存在則清空文件*      wx:以寫的模式打開文件,如果文件不存在則創建文件,如果存在拋出異常*      w+:以讀寫文件的模式打開文件,如果文件不存在則創建文件,如果存在則清空文件*      wx+:以讀寫的模式打開文件,如果文件不存在則創建文件,如果存在拋出異常*      a:追加模式打開文件,如果不存在則創建文件*      a+:讀寫和追加模式打開文件,如果不存在則創建文件*      ax:追加模式打開文件,如果存在拋出異常*      ax+:讀寫和追加模式打開文件,如果存在拋出異常*      *  3.mode:設置文件的模式,讀寫執行(4-2-1)*  4.callback:打開文件的回調函數*      function(err,fd){*          //err:文件打開失敗的錯誤信息,如果成功則為null*          //fd:被打開文件的標識*      }*/
fs.open('test.txst','wx',function(err,fd){console.info(err);if(err){console.info('文件打開失敗...');}else{console.info('文件打開成功...');}
});

fs.openSync:同步模式打開文件

fs.openSync(path, flags[, mode])

具體參數用法請參考open方法。

案例代碼如下:

var fs = require('fs');var fd =fs.openSync('test.txt', 'r');
console.info(fd);

fs.read:異步讀取一個打開的文件

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

具體參數用法請參考open方法。

案例代碼如下:

var fs = require('fs');fs.open('test.txt','r',function(err,fd){if(err){console.info('文件打開失敗...');}else{/*** 讀取文件* * fs.read(fd, buffer, offset, length, position, callback)*      1.fd:通過open方法成功打開的一個文件的返回句柄*      2.buffer:用于存放讀取內容的buffer對象*      3.offset:新的內容添加到buffer中的起始位置*      4.length:添加到buffer中的內容長度*      5.position:讀取的文件中的起始位置*      6.callback:讀取文件的回調函數*          function(err, bytesRead, buffer){*              //err:錯誤信息*              //bytesRead:讀取的內容在buffer中的長度*              //buffer:buffer對象*          }* @type {Buffer}*/var bf = new Buffer(10);fs.read(fd,bf,0,4,null,function(err, bytesRead, buffer){console.info(err); // null or some errorconsole.info(bytesRead); // 4console.info(buffer); //buffer content});}
});

fs.readSync:同步模式讀取打開的文件

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

該方法以同步模式讀取打開的文件,并且返回了從文件中讀取的內容的長度。具體參數用法請參考read方法。

案例代碼如下:

var fs = require('fs');var bf = new Buffer(10);
var fd =fs.openSync('test.txt', 'r');
var len = fs.readSync(fd,bf,0,4,null);
console.info(len); // 4
console.info(bf); // buffer content

fs.rename:異步模式對文件或者文件夾重命名

fs.rename(oldPath, newPath, callback)

對文件或者文件夾進行重命名操作

案例代碼如下:

var fs = require('fs');/*** 對文件或者文件夾進行重命名操作* * fs.rename(oldPath, newPath, callback)**  1.oldPath:要進行重命名的文件*  2.newPath:要重命名的文件名稱*  3.callback:重命名的回調函數*      function(err){*          //err:錯誤信息*      }*  */
fs.rename('./srcFile.txt','./destFile.text',function(err){console.info(err);
});

注意點

  • 當源文件不存在的時候回報錯
  • 當新的文件名稱已存在會導致原來的那個文件丟失,不會報錯!!!!

fs.renameSync:同步模式對文件或者文件夾進行重命名

fs.renameSync(oldPath, newPath)

該方法以同步模式對文件或者文件夾進行了重命名,返回值為undefined。具體參數用法請參考rename方法。

案例代碼如下:

var fs = require('fs');fs.renameSync('./srcFile.txt','./destFile.text');

fs.stat:異步模式獲取文件信息

fs.stat(path, callback)

該方法主要用來獲取文件或者文件夾的信息,包括一些類型、時間相管的信息、文件大小等。

案例代碼如下:

var fs = require('fs');fs.stat('./src',function(err,stats){/**** stats.mode:*      On Win32:*          16895 for a dir and 33206 for a file.*      On Linux:*          16877 for a dir, 33188 for a file*          */console.info("設備名:" + stats.dev);console.info("類型:" + stats.mode); //33188-文件、16877-文件夾console.info("被連接數目:" + stats.nlink);console.info("所有者的用戶id:" + stats.uid);console.info("所有者的組id:" + stats.gid);console.info("設備類型:" + stats.rdev);console.info("文件系統 IO 的塊大小:" + stats.blksize);console.info("號碼:" + stats.ino);console.info("大小:" + stats.size);console.info("所占據塊的數目:" + stats.blocks);console.info("上次訪問時間:" + stats.atime);console.info("上次修改時間:" + stats.mtime);console.info("上次改變時間:" + stats.ctime);console.info("創建時間:" + stats.birthtime);});

fs.statSync:同步模式獲取文件信息

fs.statSync(path)

該方法以同步模式獲取文件或者文件夾信息,返回一個stats對象。具體參數用法請參考stat方法。

案例代碼如下:

var fs = require('fs');var stats = fs.statSync('./src');
console.info("設備名:" + stats.dev);
console.info("類型:" + stats.mode); //33188-文件、16877-文件夾
console.info("被連接數目:" + stats.nlink);
console.info("所有者的用戶id:" + stats.uid);
console.info("所有者的組id:" + stats.gid);
console.info("設備類型:" + stats.rdev);
console.info("文件系統 IO 的塊大小:" + stats.blksize);
console.info("號碼:" + stats.ino);
console.info("大小:" + stats.size);
console.info("所占據塊的數目:" + stats.blocks);
console.info("上次訪問時間:" + stats.atime);
console.info("上次修改時間:" + stats.mtime);
console.info("上次改變時間:" + stats.ctime);
console.info("創建時間:" + stats.birthtime);

轉載于:https://www.cnblogs.com/mangoniki/p/5502962.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287759.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287759.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287759.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《零基礎看得懂的C語言入門教程 》——(十二)原來結構體是這么回事

一、學習目標 了解C語言的結構體的使用方法了解C語言結構體的結構的賦值了解多種C語言結構體變量的賦值方法和取值方法 目錄 C語言真的很難嗎?那是你沒看這張圖,化整為零輕松學習C語言。 第一篇:(一)脫離學習誤區 第…

【學生選課系統經典】C#與SQLSERVER連接:Windows應用工程案例

實驗任務描述 1 用C#訪問SQLSERVER數據庫(兩種安全模式); 2 用C#完成數據庫指定表上的數據顯示; 3 用C#完成數據庫指定表上的數據插入、刪除和更新; 4 用C#完成數據庫用戶驗證。 注意,由于C#語言的強大功能,下面的代碼適用于SQLSERVER2000、也適合于SQLSERVER2005。區別僅…

Java精選筆記_JDBC

JDBC概述 什么是JDBC JDBC全稱是Java數據庫連接(Java Database Connectivity),應用程序可通過這套API連接到關系數據庫,并使用SQL語句來完成對數據庫中數據的查詢、更新和刪除等操作。是一套用于執行SQL語句的Java API。Java的數據…

mysql關系數據庫引擎_MySQL數據庫引擎詳解

作為Java程序員,MySQL數據庫大家平時應該都沒少使用吧,對MySQL數據庫的引擎應該也有所了解,這篇文章就讓我詳細的說說MySQL數據庫的Innodb和MyIASM兩種引擎以及其索引結構。也來鞏固一下自己對這塊知識的掌握。Innodb引擎Innodb引擎提供了對數…

Java之synchronized的JVM底層實現原理精簡理解

1 synchronized的JVM底層原理實現的精簡理解 Java 虛擬機中的synchronized基于進入和退出Monitor對象(也稱為管程或監視器鎖)實現, 無論是顯式同步(synchronized作用在同步代碼塊,有明確的 monitorenter 和 monitorexit 指令) 還是…

三分鐘掌握Actor和CSP模型

點擊上方藍字進行關注前文傳送門:《三分鐘掌握共享內存模型和 Actor模型》, 一直想比較Actor模型與golang的CSP模型,經過一段時間的實戰記錄了本文。Actor vs CSP模型? 傳統多線程的的共享內存(ShareMemory)模型使用l…

DateTimeToUnix/UnixToDateTime 對接時間轉換

問題&#xff0c;通過毫秒數來解析出時間&#xff1a;&#xff08;很多對接的時候經常需要用到&#xff09; <?php $MyJson {"jingdong_vas_subscribe_get_responce":{"code":"0","item_code":"FW_GOODS-2236-1","…

【學生選課系統經典】VB與SQLSERVER連接:Windows應用工程案例

實驗任務描述 1 用VB6訪問SQLSERVER數據庫(兩種安全模式); 2 用VB6完成數據庫指定表上的數據顯示; 3 用VB6完成數據庫指定表上的數據插入、刪除和更新; 4 用VB6完成SQLSERVER2008數據庫用戶驗證。 一、數據庫系統 該實驗中,所要求的數據庫名稱為SCHOOL,總共涉及以下表:

丟失api-ms-win-crt-runtime-l1-1-0.dll

運行Cmder的時候提示&#xff1a;丟失api-ms-win-crt-runtime-l1-1-0.dll在網上找了一些方法&#xff0c;基本解決方法都是裝VC2015的運行時&#xff0c;但是我安裝的時候出錯&#xff0c;大家可以先試試。接著我就去解決安裝出錯這問題沒&#xff0c;折騰了半天也沒成功。后來…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(二)魔法實習生第一步了解魔杖的使用

學習目標 了解什么是開發環境了解python語言的環境安裝了解python語言編程的編輯器工具 目錄 第一篇&#xff1a;《假如編程是魔法之零基礎看得懂的Python入門教程 》——&#xff08;一&#xff09;既然你選擇了這系列教程那么我就要讓你聽得懂 第三篇&#xff1a;《假如編…

Java之synchronized可重入性的理解

1 synchronized可重入性的理解 當一個線程試圖操作一個由其他線程持有的對象鎖的臨界資源時&#xff0c;將會處于阻塞狀態&#xff0c;但當一個線程再次請求自己持有對象鎖的臨界資源時&#xff0c;如果當前鎖是重入性&#xff0c;會請求將會成功&#xff0c;如果當前鎖不是可…

onmouseover-onmouseout

<input type"checkbox" value"autoLogin" οnmοuseοver"block()" οnmοuseοut"none()">兩周內自動登錄 <div id"div1">為了您的信息安全請不要在網吧或公共電腦勾選此項</div> <script> functi…

mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報錯的解決方法

近期在開發過程中&#xff0c;因為項目開發環境連接的mysql數據庫是阿里云的數據庫&#xff0c;而阿里云的數據庫版本是5.6的。而測試環境的mysql是自己安裝的5.7。因此在開發過程中有小伙伴不注意寫了有關group by的sql語句。在開發環境中運行是正常的&#xff0c;而到了測試環…

一款高速的NET版的離線免費OCR

PaddleOCR.Onnx一款基于Paddle的OCR&#xff0c;項目使用ONNX模型&#xff0c;速度更快。本項目同時支持X64和X86的CPU上使用。本項目是一個基于PaddleOCR的C代碼修改并封裝的.NET的工具類庫。包含文本識別、文本檢測、基于文本檢測結果的統計分析的表格識別功能&#xff0c;同…

spring 注解簡單使用

一、通用注解 1、項目結構&#xff1a; 2、新建Person類&#xff0c;注解Component未指明id&#xff0c;則后期使用spring獲取實例對象時使用默認id"person"方式獲取或使用類方式獲取 package hjp.spring.annotation.commen;import org.springframework.stereotype.C…

selenium+python筆記3

#!/usr/bin/env python # -*- coding: utf-8 -*- """ desc:學習unittest的用法 注意setUp/setUpClass&#xff0c;tearDown/tearDownClass的區別 ① setUp():每個測試函數運行前運行 ② tearDown():每個測試函數運行完后執行 ③ setUpClass():必須使用classmeth…

【學生選課系統經典】C#與SQLSERVER連接:ASP.NET網站(服務器端,IIS發布)

實驗任務描述 1 用C#訪問SQLSERVER數據庫(兩種安全模式); 2 用C#完成數據庫指定表上的數據顯示; 3 用C#完成數據庫指定表上的數據插入、刪除和更新; 4 用C#完成數據庫用戶驗證。 此處使用ASP.NET工程來完成這個項目,和Windows應用不同的是:這個項目是在服務器上、依靠IIS服…

TCP包頭、UDP包頭、IP包頭、和MAC幀包頭詳細字段和包頭大小

1 TCP頭 TCP是一種可靠的、面向連接的字節流服務,頭部定義如下。 /*TCP頭定義,共20個字節*/ typedef struct _TCP_HEADER {short m_sSourPort;       // 源端口號16bitshort m_sDestPort;       // 目的端口號16bitunsigned int m_uiSequNum; …

經典面試題:用戶反映你開發的網站訪問很慢可能會是什么原因

原文鏈接&#xff1a;http://blog.csdn.net/lv_victor/article/details/53148421 問題場景&#xff1a;某個用戶向你反映說你開發的網站訪問速度很慢&#xff0c;但是該用戶訪問其他問題很正常&#xff0c;分析下原因、有哪些工具分析原因、怎么解決問題&#xff1f; 最近面試兩…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(三)使用初始魔法跟編程魔法世界打個招呼吧

學習目標 完成顯示魔法的使用——輸出print完成傳入魔法的使用——輸入input使魔法生效——運行python文件 目錄 第一篇&#xff1a;《假如編程是魔法之零基礎看得懂的Python入門教程 》——&#xff08;一&#xff09;既然你選擇了這系列教程那么我就要讓你聽得懂 第二篇&am…