fs模块写入文件的方式
导入内置模块
const fs=require("fs")
一、异步写入方式
fs.writeFile("写入文件的路径",str,"utf-8",(err)=>{
console.log();
})
二、同步写入方式
fs.writeFileSync("写入文件的路径",str,"utf-8");
三、流的写入方式
var fn=fs.createWriteStream("写入文件的路径");
fn.write(str,"utf-8");
fn.end();
fn.on("finish",()=>{ });
fn.pause(); 暂停
fn.resume(); 继续
err:错误优先
utf-8:有这个参数以字符串输出,没有就以八分数组输出
str:要写入的内容
fs模块读取文件的方式
导入内置模块
const fs=require("fs")
一、异步读取方式
fs.readFile("路径","utf-8",(err,data)=>{
console.log(data);
})
二、同步读取方式
fs.readFileSync("路径","utf-8")
console.log(data);
三、流的读取方式
var fn=fs.createReadStream("路径");
var str="";
fn.on("data",(thunk)=>{ str+=thunk });
fn.on("end",()=>{
console.log(str);
});
fn.pause(); 暂停
fn.resume(); 继续
流的方式读取大文件进度
var rs= fs.createReadStream("路径");
文件的大小
var filesize=0;
fs.stat("路径",(err,info)=>{
filesize=info.size;
})
var len=0;
rs.on("data",(thunk)=>{
len+=thunk.length;
console.log((len/filesize*100).toFixed(2)+'%');
})
rs.on("end",()=>{
console.log("read complete")
})
err:错误优先
utf-8:有这个参数以字符串输出,没有就以八分数组输出
data:要读取的文件
fs模块读取文件方式的顺序
同步 ——> 流 —> 异步
fs模块copy方式
一、小文件的copy方式
var copyFile=(src,dest)=>{
new Promise((callbaack)=>{
fs.readFile(src,"utf-8",(err,data)=>{
callback(data);
})
}).then((data)=>{
fs.writeFile(dest,data,"utf-8",()=>{
console.log();
})
})
}
src:表示原文件
dest:表示被copy的目标文件
data:表示要读取的文件
二、大文件的copy方式
var rs=fs.createReadStream("原文件路径");
var ws=fs.createWriteStream("目标文件路径");
var size=0; 定义文件的大小
var len=0; 定义加载的进度
fs.stat("原文件路径",(err,info)=>{
size=info.size;
rs.on("data",(thunk)=>{
len+=thunk.length;
var flag=ws.write(thunk,(err)=>{
if(!err){
process.stdout.clearLine(); 清屏
process.stdout.cursorTo(0); 让光标在第一行
process.stdout.write((len/size*100).toFixed(2)+"%");
}
})
if(!flag){
rs.pause(); 如果没有写入完成,就暂停读取
}
})
})
ws.on("drain",()=>{ drain表示写入完成
rs.resume(); 如果写入完成,就继续读取
})
rs.on("end",()=>{
process.stdout.clearLine();
process.stdout.cursorTo(0);
})
http模块
导入模块
const http=require("http");
操作
var ser=http.createServer((req,res)=>{
res.writeHead(200,"Content-type",'text/html;charset=uft-8'); 防止中文乱码
res.write(`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>`)
res.write("<h1>hello world!!!!!</h1>");
res.end(`</body>
</html>`);
})
ser.listen(端口号,()=>{
console.log("listen"+ser.address().port+"...");
})
红色部分是为了看起来像html页面
req:表示请求对象
res:表示响应对象
200:表示请求成功的状态吗
- nodejs零基础详细教程2:模块化、fs文件操作模块、http创建服务模块
第二章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
- node.js零基础详细教程(2):模块化、fs文件操作模块、http创建服务模块
第二章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
- 三、fs文件操作模块
fs模块用于文件的读写等操作. 该模块有如下这些方法: 1.fs.stat() : 检测是文件还是目录 const fs = require('fs'); fs.stat('test.html',fu ...
- node的fs模块使用————node
node的fs模块使用----node fs模块是调用文件的模块. var fs=require('fs'); //引用模块. //查看文件信息 fs.stat('index.txt',functio ...
- Node.js核心模块-fs文件系统
fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...
- 运用node的文件系统模块批量修改文件名
如果我们需要大批量修改一个文件中的名称,比如,删除文件名中的副本时,就可以借助node的文件系统模块,快捷快速的完成. 首先建立一个js文件(changeName.js),代码如下: // 引入f ...
- nodejs原生模块简介
一.Express框架 前面的章节已经介绍过了,可以使用npm来安装node.js模块.具体操作请参照以前写的nodejs概论. Express是一个nodejs的web开源框架,用于快速的搭建web ...
- events模块
/** * Created by Administrator on 2016/8/3. */ var http = require("http"); //Node 导入文件系统模块 ...
- nodeJS之fs文件系统
前面的话 fs文件系统用于对系统文件及目录进行读写操作,本文将详细介绍js文件系统 概述 文件 I/O 是由简单封装的标准 POSIX 函数提供的. 通过 require('fs') 使用该模块. 所 ...
随机推荐
- 好玩的Python库tqdm (转载)
原文地址: https://blog.csdn.net/zejianli/article/details/77915751 可以显示循环的进度条的库,再也不用担心不知道程序跑到哪里还要跑多久了 tqd ...
- C++ 内存拷贝函数 memcpy
在C/C++中经常会遇到对一段固定的连续内存进行拷贝操作, 这时候我们就需要用到 <cstring> 头文件 中的 memcpy 函数. 具体使用如下: 其中 , ...
- for-auto使用
前言 c++11新增了一个工具,让编译器能够根据初始值的类型推断变量的类型: c++11还新增了一种循环,基于范围的for循环,可以对数组或者容器类的每一个元素执行相同的操作:同时,可以使用& ...
- 51Nod:1268 和为K的组合
1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以 ...
- Mac无法上网
今天mac突然无法上网了, 家里的大部分设备, 都出现了重启后无法上网的问题, 猜测可能是dns有问题了. 于是乎, 在mac中添加了如下DNS 114.114.114.114 8.8.8.8 1.1 ...
- hdu2072 单词数 字典树
字典树裸题 #include<stdio.h> #include<string.h> ][]; ]; int cnt; int ans; void Insert(char *w ...
- hdu1355
题意:有一片矩形花生田在路的一侧,田上的整数坐标位置有0个或多个花生,现规定从路上走到田地最边上的某个格点位置.从田边上走回路上.从一个格点移动到另一个格点.采摘格点上的花生,这四种动作都要花费一单位 ...
- 一张图解释java跨平台
- Entities、pads、links 实体、垫、链接
Entities.pads.links 实体.垫.链接 Entities:1.实体由一个struct media_entity实例表示.结构通常嵌入到一个较高级别的结构,例如v4l2_subdev或v ...
- git server side hook 试用
git 的hook 是一个很方便的功能,我们可以使用hook 做好多处理,比如client side hook 进行 提交格式校验,server side 进行ci/cd 处理 测试使用docker- ...