From c827c1f90d9eb98faf59c2b8c40d04fca9541137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= <790604007@qq.com> Date: Tue, 21 Feb 2023 06:06:59 +0000 Subject: [PATCH] =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 韦绍严 <790604007@qq.com> --- .../bigFile.txt" | 1 + .../p.js" | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 "\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/bigFile.txt" create mode 100644 "\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/p.js" diff --git "a/\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/bigFile.txt" "b/\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/bigFile.txt" new file mode 100644 index 0000000..d359280 --- /dev/null +++ "b/\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/bigFile.txt" @@ -0,0 +1 @@ +cdad \ No newline at end of file diff --git "a/\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/p.js" "b/\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/p.js" new file mode 100644 index 0000000..1da5fe6 --- /dev/null +++ "b/\351\237\246\347\273\215\344\270\245/\346\226\207\344\273\266\347\263\273\347\273\2373/p.js" @@ -0,0 +1,46 @@ +// 使用open write close的形式去创建一个大文件,内容从指定的文本中随机取一些(每次取得长度内容可以不一样),计算出这个大文件出现最多的字符(要使用流的形式). + +let fs = require('fs'); + +let bigFile = fs.openSync("./bigFile.txt", "w"); +let content = "abcdefg"; +let arr = []; +let x = Math.floor(Math.random() * 10) +for (let i = 0; i < x; i++) { + let a = Math.floor(Math.random() * content.length) + arr[i] = content[a]; + fs.writeSync(bigFile, "" + arr[i] + ""); +} +fs.close(bigFile); + +let rs = fs.createReadStream('./bigFile.txt', 'utf-8'); + +rs.on("data", function (chunk) { + console.log("文件内容:" + chunk) + var obj = {} + for (let j = 0; j < chunk.length; j++) { + var k = chunk.charAt(j); + if (obj[k]) { + obj[k]++; + } else + obj[k] = 1; + } + + var max = 0; + var result = ''; + for (var key in obj) { + if (obj[key] > max) { + max = obj[key]; + result = key; + } + } + console.log("出现次数最多的字符:" + result); +}) + +rs.on("end", function () { + console.log("----over----"); +}); + +rs.on("error",function(err){ + console.log(err); +}); \ No newline at end of file -- Gitee