nj10---文件读取
介绍:fs模块是文件操作的封装,它提供了文件的读取,写入,更名,删除,遍历目录,链接POSIX文件系统操作。与其他模块不同的是,fs模块中所有的操作都提供了异步和同步两个版本,例如读取文件内容函数异步方法:readFile(),同步方法readFileSync()。
一、fs.readFile(filename,[encoding],[callback(err,data)])是最简单的读取文件的函数。
参数:filename:读取的文件名。
encoding 文件的字符编码 ANSI
callback 回调函数提供两个参数err和data,err表示有没有错误发生,data是文件内容。如果指定了encoding,data是一个解析后的字符串,否则将会以buffer形式表示的二进制数据。
案例:readFile.js
二、fs.readFileSync(filename,[encoding])
同步读取文件它棘手的参数和fs。readFile相同,而读取到的文件内容会以函数返回值的形式返回,如果有错误发生,fs将抛出异常,你需要try和catch捕获并处理异常
三、fs.open(path,flags,[mode],[callback(err,fd)])是POSIXopen函数的封装,与C语言标准库中的fopen函数类似,它接受两个必选参数,
path为文件路径,
flags可以为以下值:
r:以读取模式打开文件
r+:以读写模式打开文件
w:以写入模式打开文件,如果文件不存在则创建
w+:以读写模式打开文件,如果文件不存在则创建
a:以追加模式打开文件,如果文件不存在则创建。
a+:以读取追加模式打开文件,如果不存在则创建。
mode:用于创建文件时给文件指定权限,默认是0666,回调函数将会传递一个文件描述符fd
0666:文件权限值POSIX系统中对文件读取和访问权限的规范,通常用八进制数表示,如:0754标识文件所有者权限是7(读,写,执行),同组用户权限是5(读,执行)其他用户的权限是4(读)。
fd:文件描述是一个非负整数,表示操作系统内核为当前进程所维护的打开文件的记录表索引。
四、fs.read(fd,buffer,offset,length,position,[callback(err,bytesRead,buffer)])是POSIX中read函数的封装,相比readFile提供了更底层的接口。从指定的文件描述fd中读取数据并写入
fd:指定的文件描述
offset是buffer的写入偏量值
buffer指向的缓存区对象。
length:读取的字节数
position:文件读取的起始数,如果为null,则从当前文件指针读取。
回调函数传递err,bytesRead和buffer,分别标识读取的字节数和缓冲区对象。
API地址:http://nodejs.org/api/fs.html
//引入fs模块
var fs=require('fs');
//调用读取文件方法
fs.readFile('content.txt',function(err,data){
if(err){
console.log(err);
}else{
console.log(data);//<Buffer ef bb bf e6 e4 bb b6 e3 80 82>
}
});
fs.readFile('content.txt','UTF-8',function(err,data){
if(err){
console.log(err);
}else{
console.log(data);//我是一个文本文件。
}
}); try{
var data=fs.readFileSync('content.txt','UTF-8');
console.log(data+"dddd");//我是一个文本文件。dddd }catch(e){
console.log(e)
}
var fs=require('fs');
fs.open('content.txt','r',function(err,fd){
if(err){
console.log(err);
return;
}
var buf=new Buffer(8);
fs.read(fd,buf,0,8,null,function(err,bytesRead,buffer){
if(err){
console.log(err);
return;
}
console.log('bytesRead '+bytesRead);
console.log(buffer);
});
})
nj10---文件读取的更多相关文章
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- php xml 文件读取 XMLReader
php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person ...
- 1-2 nodejs小节 文件读取
1.表达式 在命令行输入 node回车后,可以在后边输入相应的表达式,进行运算操作 2.阻塞文件读取 var data=fs.readFileSync('input.txt', 'utf-8') ...
- 详解Js中文件读取机制
前言,文件读取是提高应用体验度的必须接口,应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file"&g ...
- C# 文件操作 把文件读取到字节数组
string zipfile = "c:\\a.zip"; //方法1 FileStream fs = new FileStream(zipfile, FileMode.Open) ...
- H5学习系列之文件读取API--本文转自http://blog.csdn.net/jackfrued/article/details/8967667
HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...
- 应用服务器Glassfish任意文件读取漏洞
catalogue . 前言和技术背景 . Glassfish安装配置 . 漏洞利用 . 漏洞缓解(修复) 1. 前言和技术背景 0x1: GlassFish是什么 GlassFish 是用于构建 J ...
- golang 文件读取
Golang 的文件读取方法很多,刚上手时不知道怎么选择,所以贴在此处便后速查. 一次性读取 小文件推荐一次性读取,这样程序更简单,而且速度最快. 复制代码 代码如下: func ReadAll(fi ...
- Python编码/文件读取/多线程
Python编码/文件读取/多线程 个人笔记~~记录才有成长 编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...
- [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下 ...
随机推荐
- Nginx 实现反向代理
Nginx 实现反向代理 两个域名指向同一台 Nginx 服务器,用户访问不同的域名显示不同的网页内容 两个域名分别是 www.test1.com www.test2.com 1.准备工作 下载及安装 ...
- SpringAOP之CGLIB字节码增强
SpringAOP的基础原理就是动态代理 有两种实现方式:1)jdk动态代理 2)cglib动态代理 jdk动态代理和cglib动态代理的区别在于: cglib没有接口(通过继承父类) 只有实现类. ...
- angular-模块Module
模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. <div ng-app="myApp" runoob-dire ...
- Apache Tez 0.7、0.83、 0.82 安装、调试笔记
———————————————————— 准备 Tez 编译环境 ———————————————————— 1 需要的支持 tez0.7 需要 Hadoop 2.60 以上 2 需要的 linux 相 ...
- Java IO(三) 之 FileInputStream
前言: 对于文件系统中的文件.都能够使用FileInputStream流类以二进制的形式进行读取.可是因为Java本身的定位在JVM之上,没有处理计算机底层的能力.因此一些涉及底层处理的方法都是使用n ...
- 零基础学HTML 5实战开发(第一季)
開始学习html5了.趋势不得不学习啊,之前老毛说过落后就要挨打,如今是不学习就要被市场淘汰,被社会淘汰.喜欢挑战,喜欢冒险.来吧.csdn给我们提供了那么好的平台.用起来..零基础学HTML 5的实 ...
- ios修改了coredata数据结构后,更新安装会闪退
如果iOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表.字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下: 1.选中你的mydata.xc ...
- MYSQL INT(N)以及zerofill的使用区别
MYSQL中,int(n)括号里面的数据n无论写成多少,都是占4个字节的空间,最多能够存10位数.N不代表能够存多少位数,显示宽度M与数据所占用空间,数值的范围无关. 如果在定义字段的时候指定zero ...
- 三个获取浏览器URL中参数值的方法
这三个是一般的获取浏览器传的参数值的方法,之前有用unescape()解码的方法,但是遇到汉字会产生乱码,所以用decodeURI(); 方法一: function getQueryString(na ...
- C#语言基础之第一个C#程序
1.在记事本中编写如下代码,保存为Simple.cs文件. using System; class Hello World{ public static void Main(){ Console.Wr ...