日期: 2022-09-21 03:48:15 浏览数:5

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
南县设计网页公司

nsole.log(str);
原理是先统一用二进制编码方式读取,然后再用 GBK 解码。
管理员注解:这种情况很可能是你的 JS 文件的编码方式是 ASCII,可以把文件的编码格式换为 UTF-8 即可。
分享
分享
294***2136@qq.com
4年前 (2018-09-01)
夏楠
414***997@qq.com
40
我不赞成一楼的那种写法杂乱无章。我用的是promise并发了两个文件的请求数据,然后再把两个文件的内容再重新写到另一个文件中,谢谢参考。
//引入fs模块
var fs = require("fs")
//封装请求文件数据的函数
function getFileData(fileName){
return new Promise(resolve=>{
var readStream = fs.createReadStream(fileName)
readStream.setEncoding('UTF8')
readStream.on("data",chunk=>resolve(chunk))
})
}
//并发请求
Promise.all([getFileData("input.txt"),getFileData("output.txt")]).then(result=>{
var writeStream = fs.createWriteStream("output.txt");
//讲两个文件的内容重新再写入到output.txt中
writeStream.write(result[0]+","+result[1],"UTF8");
writeStream.end();
//再获取output.txt文件的内容
fs.readFile("output.txt",(err,content)=>console.log(content.toString()))
})
夏楠
夏楠
414***997@qq.com
3年前 (2019-03-27)
良木
341***8308@qq.com
19
一楼的意思就是一次追加操作,fs 包提供了一个函数 appendFile,可以解决追加操作。
个人搜索所得文件追加操作:
writeFile 函数虽然可以写入文件,但是如果文件已经存在,我们只是想添加一部分内容,它就不能满足我们的需求了,很幸运,fs 模块中还有 appendFile 函数,它可以将新的内容追加到已有的文件中,如果文件不存在,则会创建一个新的文件。使用方法如下:
例:fs.appendFile(文件名, 数据, 编码, 回调函数(err));
var fs= require("fs");
fs.appendFile('test.txt', 'data to a
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
riteStream.on("finish", () => console.log("写入完成")); writeStream.on("error", err => console.log(err.stack)); console.log("程序2执行完毕");}如此,便可以啦;
房明
121***5022@qq.com
彤哥哥
lty***in@gmail.com
如楼上可能存在覆盖状态,可以设置写入流的追加参数来解决:
var fs = require('fs');var read = fs.createReadStream('../data/input.txt');//设置第二个参数appendvar write = fs.createWriteStream('../data/out.txt', { 'flags': 'a' });//管道流读写操作read.pipe(write);console.log('执行完毕');彤哥哥
lty***in@gmail.com
分享
294***2136@qq.com
按照第一个教程读取 input.txt 会出现中文乱码问题,即使你设置了如下:
// 设置编码为 utf8。readerStream.setEncoding('UTF8');也照样没有用的。我的代码确定跟上面第一个读取流的教程一模一样,input.txt 里面的内容也是一模一样,可就是照样乱码。
解决方案:
全局安装 iconv-lite 这个模块:
代码中写法如下:
var iconv = require('iconv-lite');var fs = require('fs');var fileStr = fs.readFileSync('D: est.csv', {encoding:'binary'});var buf = new Buffer(fileStr, 'binary');var str = iconv.decode(buf, 'GBK');console.log(str);原理是先统一用二进制编码方式读取,然后再用 GBK 解码。
分享
294***2136@qq.com
夏楠
414***997@qq.com
我不赞成一楼的那种写法杂乱无