nodejs的文件读取

nodejs读取大文件 最近用户越来越多,每天用户行为数据也原来越大,虽然每天写一个文件,但是对于上M的文件,node.js的fs.readFiles是扛不住的,会报错,因为v8引擎的内存是有限制的,readFiles会一下子把整个文件加载进内存里面来,当然会越界。幸好nodejs提供了fs.ReadStream,我们一块块(默认64k,可以自己设置,具体参考官方文档)读取文件数据,内存就不会爆掉。我们需要一行一行的分析... 阅读详情
文件的读取
##fs -- file system(文件读取系统)
- 使用
- 是否需要 require 引入 -- 需要 require
- var fs = require('fs');
- 常用API
- 读
-异步读取:
- fs.readFile(filename, callback(err,data));
- 文件路径 文件夹的路径 + 文件名和后缀 ???
- callback(err, data)
- 执行时机
- 文件读完的时候, 事件被触发, 回调函数被执行
- err
- err 被赋值 一个 对象
- err null
- data
- 数据类型:buffer
- 文字:buffer.toString();
- 图片:
实例代码:
// 读取出文件的内容 入读的内容按照 buffer 处理
fs.readFile('content.txt', function(err, data) {
if (err) {
console.error(err);
} else {
console.log(data);
console.log(data.toString());
}
});
异步处理错误的方式:
通过回调函数中的第一个值err来获取


- fs.readFileSync(filename);
- 文件路径
- 怎么得到 读取回来的结果: 返回值

实例代码:
var fs = require('fs');
/*
//同步读取, 函数的返回值携带读取回来的内容,默认是 buffer 类型
var data = fs.readFileSync('content.txt');
console.log(data);

// 设置编码格式 函数的返回值携带读取回来的内容,由于设置了编码格式,相当于告诉系统两个信息:
// 1.程序员需要的返回值是 string 类型
// 2.程序员需要这个string的编码格式是...
var data = fs.readFileSync('content.txt', 'utf8'); //utr8 编码格式
console.log(data);
同步处理错误的方式:

// 与异步处理不同, 错误直接以抛异常的方式给出
// 程序员必须使用 try catch 语句才能接收处理 这些异常
// 此处 '红楼梦.txt' 文件不存在
try {
var data = fs.readFileSync('红楼梦.txt', 'utf8');
console.log(data);
} catch (err) {
console.error(err);
console.trace( 'readFileSync 出错了' );
}
*/

- 写
-异步写文件
- fs.writeFile(file, data[, options], callback)
- 文件路径
- 写入的内容
- callback
- err

[, options]中的内容:
// 
// 其中: options 是用来配置 writeFile 这个函数的行为的
// 我们关心的是 flag 属性,这个属性默认是 'w'
// 例如: { flag: 'w' } 这个属性

//r :以读取模式打开文件。
//r+ :以读写模式打开文件。
//w :以写入模式打开文件,如果文件不存在则创建。
//w+ :以读写模式打开文件,如果文件不存在则创建。
//a :以追加模式打开文件,如果文件不存在则创建。
//a+ :以读取追加模式打开文件,如果文件不存在则创建。

实例代码:
var fs = require('fs');
var control = ['r', 'r+', 'w', 'w+', 'a', 'a+'];
var path='./login.txt'(我要写入的文件的路径)
var data = '西天取经\n';

fs.write(path,data,{flag:a},function(err){
if(err){
console.log(err)
}else{
console.log('文件写完了')
}
})

-
同步写文件:
- fs.writeFileSync(file, data[, options]);
- 文件路径
- 写入的内容
- 错误处理 : 同步的方式,依靠try catch
- try
- catch
-实例代码:

var data = '西天取经\n';

fs.writeFileSync('out.txt', data);
fs.writeFileSync('out.txt', data, {flag:'a+'} );


-错误处理:
try{
fs.writeFileSync('out.txt', data, {flag:'r'} );
}catch (err){
console.error(err);
}

- 同步与异步的概念(难点)
- 区别


#### /favicon.ico 处理
- 使用 路由分发
- 使用 读文件


#### 呈现网页
- 把 form 页显示在浏览器
- 异步读取文件,并且把文件返回给浏览器 难点

回调函数:当事件被触发的时候会调用


将网页呈现
var http = require('http');
var url = require('url'); //引入 url 包
var fs = require('fs'); //引入fs包


var server = http.createServer(function (req, res) {

console.log(req.method); //方法
console.log(req.url); //url 文件路径确定的是需要访问的资源

var temp = url.parse(req.url, true);
var pathName = temp.pathname;
var query = temp.query;


//路由
switch (pathName){

case '/login':
res.writeHead(200, 'OK', {
'content-type':'text/html;charset=utf8' //html 无格式
});

//返回网页
var path = './login.html';
fs.readFile(path, function (err, data) {
//res.end(); //1
if(err){
console.error(err);
}else {
console.log(data);
res.end(data); //2
}
});
//res.end(); //3
break;
case '/favicon.ico':
//处理图标
var pathIco = './favicon.ico';
fs.readFile(pathIco, function (err, data) {
if(err){
console.error(err);
}else {
console.log(data);
res.end(data);
}
});
break;
default:
res.writeHead(404, 'not found', {
'content-type':'text/html;charset=utf8' //html 无格式
});
res.write('好逗啊');
res.end('网页没找到');

}
});
console.log('你好。我是猫');

server.listen(3002, function listenCallback() {
console.log('started');
});
dat-nodejs:www.ipplus360.com官方支持的解析dat格式的Nodejs代码(对以DAT格式解析Nodejs代码的官方支持) dat-nodejs 立即下载

相关推荐

Qwen-Image-2512 本地部署完全指南:从零开始搭建你的AI绘图工作站

阿里通义团队开源了Qwen-Image-2512模型,这款AI绘图模型在人物真实感、自然细节和文字渲染上表现惊艳,甚至在盲测中超越部分闭源模型。本文提供了详细的本地部署教程,从硬件准备、环境安装到使用ComfyUI运行模型,手把手教你生成第一张AI图片,并分享了进阶技巧和免费在线体验方式。

莫潇羽的个人博客 2427

深入浅出Nodejs中的大文件读写

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。

小王的技术库 3981

量化策略开发步骤系列(5)前向测试和统计意义

我们在第 4 部分,展示了我们策略的样本外测试并讨论了其结果。用于开发模型的数据是 2018 年至 2021 年的数据,测试数据是 2021 年至 2022 年的数据。但有一种方法可以更好地利用我们的数据。

码上助君的专栏 1847

nodejs 读取文件中的几行

最近遇到了这样的问题: 如何每次从一个文件里面依次读里面的几行 对nodejs提供的readline和一些三方npm例如lineReader不满意,就自己实现一个简易版本var fs = require('fs'); var data = fs.readFileSync('url.dat', 'utf8'); var lines = data.split("\n");function get_l

空気力学少女の诗 6702

基于Java的高校学生信息管理系统的设计与实现(论文+源码)

可以对本系统的数据进行良好的封装,Java可以对不想被访问的数据进行良好的隐藏,具备平台无关性,可移植,更加可靠与安全,具备多线程支持,进行网络交互更容易。它支持本系统的B/S模式。开发效益方面,本系统一旦开发成功并且面向社会,就会让大多数的学生教师体会到便利办公的乐趣,随之促进提高本系统的使用率和经济利润,所以在经济方面,对于零成本开发且高利润的学生管理系统是可行的。学生可以在学生端进行选课,查看自己的成绩,教师可以在教师端查看所任课程的选课情况,对学生成绩进行录入,对所任的课程进行结课等操作。

2402_82389843的博客 1092

非华为电脑也能用上鸿蒙生态?手把手教你给Win10/Win11装上最新华为电脑管家(附移动应用引擎开启方法)

本文详细介绍了如何在非华为品牌的Windows 10/11电脑上安装华为电脑管家并启用移动应用引擎,实现鸿蒙生态的无缝协同体验。从BIOS设置到安装步骤,再到性能优化和常见问题解决,手把手教你解锁跨设备高效工作流。

weixin_42542669的博客 4241

被node.js坑过的事(二)

公司最近在做一个对大量数据进行计算的项目,阴差阳错用上了node.js,中间出现很多的版本问题,不过通过升级几次版本终于搞过去了,但是有个问题是io效率问题。经过反复尝试发现读取文件的一下总结: 在Node.js中,我们可以通过两种方式来读取文件: 使用fs.readFile()一次性将文件内容全部读取出来,考虑到可能将来会操作几G大的文件,所以放弃了这种方式;使用fs.creat

u010755374的专栏 694

2.1 跟网型控制原理与局限性

本文深入分析了并网变流器的跟网型(GFL)控制技术及其局限性。GFL控制将变流器视为受控电流源,依赖锁相环(PLL)跟踪电网电压,在强电网下表现良好,但在弱电网中面临严峻挑战。研究发现,当电网短路比降低时,PLL动态与电网阻抗的负交互会导致系统失稳,同时GFL变流器缺乏电压支撑能力和惯量响应能力,在故障时易脱网。相比之下,构网型(GFM)控制具有电压源特性,能自主构建电网电压,更适合弱电网环境。随着新能源占比提高,GFL控制正逐渐被更具主动支撑能力的GFM控制所替代。

技术工作者 996

node.js读取文件

node.js内置模块fs.readFile()

weixin_51862533的博客 1741

Grok 3国内怎么用?超详细使用指南+实用指令模板

主要是用于快速分析学术论文,提取关键信息,总结研究成果。Analyze the following research paper: [粘贴或上传论文内容]1. Extract key findings, methodologies, and conclusions. (提取主要发现、方法和结论。2. Identify statistical significance and data points. (识别统计显著性和数据点。

Survivor_sl的博客 1万+

小黄鸭机器人技术全解-第 07 章 关节自由度与行程参数

—鸭子歪着头转头时,转的平面是斜的,这正是它"灵动"感的来源。仿真里这是自动的(轴定义在父刚体系),复刻时不需要做任何事——

yolo模型训练找我,AI游戏合作找我 67

关于NodeJS的文件读取

var fs = require("fs"); // 导入文件模块 // node,读写文件有同步与异步的接口,我们重点使用异步 // var fd = fs.openSync('hello.txt','r'); // console.log(fd); // 同步=>等待和阻塞 // var buf = Buffer.alloc(20); // var content = fs.readFileSync(fd); // 异步 fs.readFile("hello.txt", { flag: ".

weixin_43724848的博客 361

fatal: unable to access ‘https://github.com/Stability-AI/stablediffusion.git/‘解决方案

本文主要介绍在安装 stable-diffusion-webui 时出现的 fatal: unable to access 'https://github.com/Stability-AI/stablediffusion.git/': Failed to connect to github.com port 443 after 21071 ms: Couldn't connect to server 问题的解决方案,希望能对你有所帮助。

水滴的博客 5685

nodejs fs创建文件_节点FS – NodeJS创建文件,读取文件,写入文件

nodejs fs创建文件Node FS stands for NodeJS File System module. In my previous post, we have already discussed about how to import a Node JS module using require() call. Before reading this post, please go...

从零开始的教程世界 4041

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ES6 使用 NodeJS 逐行读取文件内容

请参考: ES5 使用 NodeJS 逐行读取文件的内容 简单搭建 ES6 的运行环境 在 ES6 中使用 NodeJS 实现逐行读取文件内容,具体代码实现如下: 先看一下目录结构: //ObserverMode.js const queuedObservers = new Set(); const observe = fn => queuedObservers.add(fn); co...

雾里看花叹朦胧 2535

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Nodejs读取文件

使用nodejs文件模块(fs)读取文本文件,转成数组,再转成字符串写入文件中 const fs = require('fs') fs.readFile('./source/states.txt', 'utf8', function (err, data) { if (err) { return console.error('err') } else { let a...

1 263

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NodeJS(二)同步读取文件和异步读取文件

var fs = require("fs"); var data = fs.readFileSync('test.txt'); console.log(data.toString()); console.log("Program Ended 001"); fs.readFile('test.txt', function (err, data) { if (err) return co...

老少年的博客 2966

NodeJS实现一个简单文件读取

一、准备工作 NodeJS核心模块 fs 、http 1、文件目录结构: node文件夹 file文件夹 read.txt 文件 图片 photo.jpeg index.html 文件 index.js 文件 2、文件内容: # read.txt 文件中 我是TXT文件 # index.html 文件 # 任意html代码 二、文件读取 index.js 文件中 var http =...

weixin_41374628的博客 653

ES5 使用 NodeJS 逐行读取文件的内容

在 ES5 中使用 NodeJS 逐行读取文件的内容,下面是具体的代码实现。 目录结构如下 //ObserverMode.js const queuedObservers = new Set(); const observe = fn => queuedObservers.add(fn); const observable = obj => new Proxy(obj, {set...

雾里看花叹朦胧 1253

nodejs递归读取某一目录下所有文件

nodejs递归读取某一目录下所有文件

一只小绵羊 3335

nodejs中@elastic/elasticsearch 读取word、pdf等文件内容并对其文本索引检索

请多多留言指教 ElasticSearch7.6.2服务器配置节点 ElasticSearch7.6.2 ingest-attachment对于word,pdf等文件内容索引

阿一在线的博客 2920

NodeJS学习笔记整理(三)读取文件与回调函数

var fs = require("fs"); var data1 = fs.readFileSync('input.txt'); console.log(data1.toString()); console.log('运行程序');var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err)

猿起于此 2287

nodejs读取文件、按行读取

1.直接读取 //引入 var fs = require('fs'); var path = 'text.json'; fs.readFile(path, function (error, data) { if (error) { console.log('读取文件失败了'+error) } else { data ...

weixin_42171955的博客 8196

NodeJS文件读取:感恩常在--抓把糖果,愉悦客人

通过上一篇文章“NodeJS服务器:一行代码 = 一个的HTTP服务器”,我们已经开启了NodeJS之旅,开发了一个监听在8000端口的HTTP服务器,虽然功能很简单,但是,已经让我们感受到用NodeJS开发服务器是一件简单、愉快的事情。现在,我们按着既定的目标----将电脑里的文件共享给手机,继续前进。 老规矩,先上一个图: 回到我们的项目目标,要实现的功能是:当有客户端向NodeJS服...

weixin_30820151的博客 145

nodejs 获取文件路径_Nodejs读取文件时相对路径的正确写法(使用fs模块)

在开发Nodejs中,我们往往最常用的模块就是fs核心模块(fs.readFile)来读取文件。代码如下:但是运行之后,并没有按照想象中一样,读取test.html文件内容,这是一个bug,坑爹的玩意,解决办法:其实由于运行环境的不同,以上的相对路径的写法导致最后读取的位置是不同的。正确的写法应该是使用"path.join()"的方式实现:(__dirname表示当前文件的目录...

weixin_39709194的博客 1183

Nodejs读取目录下的所有文件并删除文件夹或文件

大量文件删除真麻烦,平常可能会使用命令行进行删除,简单写一个Nodejs读取目录下的所有文件并删除文件夹或文件吧(粗糙版),如果还想实现终端命令工具webflow-cli,commander,inquirer等,这里就不写了。 "use strict"; const fs = require("fs"); const path = require("path"); const process = require("process"); const readline = require("readline"

Boboy 1767
上一篇: 服务器的建立与关闭
下一篇: 表单和buffer
gaofan_long
博客等级 码龄10年 10粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值