diff --git "a/\351\203\221\351\271\217\347\250\213/2\346\234\21021\346\227\245/demo.js" "b/\351\203\221\351\271\217\347\250\213/2\346\234\21021\346\227\245/demo.js" new file mode 100644 index 0000000000000000000000000000000000000000..113c1d5b8aaad759247d34443cfa80657dc53116 --- /dev/null +++ "b/\351\203\221\351\271\217\347\250\213/2\346\234\21021\346\227\245/demo.js" @@ -0,0 +1,20 @@ +let fs = require("fs"); +let str = "bsvqhjsgvcbasdhb169823746198726bkjasbc你jhbsvqhjsgvcbasdhb169823746198726bkjasbcjh45dkjhciqu789jftxhrf"; +let fd = fs.openSync("./bigFile.txt", "a"); +for (let i = 0; i < 100000; i++) { + fs.writeSync(fd, String(str.substring(parseInt(Math.random() * 100), parseInt(Math.random() * 100)))); +} +fs.closeSync(fd); +let stream = fs.createReadStream("./bigFile.txt"), arr = Array(); +stream.on("data", (chunk) => { + for (let i = 0; i < chunk.toString().length; i++) { + var s = chunk.toString()[i] + "="; + arr[s] > 0 ? arr[s]++ : arr[s] = 1; + } +}) +stream.on("end", () => { + console.log(((max = { name: null, num: 0 }) => { + for (const key in arr) {if (arr[key] > max.num) { max.name = key.slice(0, 1); max.num = arr[key] }} + return max; + })()) +}) \ No newline at end of file