读取文件node.js中的随机行



我试图用node.js从文件中随机读取一行。我似乎找不到有效的解决方案。我试着在网上搜索,但仍然找不到一个有效的解决方案

我知道如何读取整个文件,但我不知道如何从文件中随机读取一个文件。

const fs = require('fs')
var readMe = fs.readFileSync('proxies.txt', 'utf8');
console.log(readMe);

By"随机线";我猜你是指从文件中的所有行中随机选择的一行。要做到这一点,你首先必须知道文件包含多少行,然后你必须选择一行。

要做到这一点,最简单、最简单的方法是将整个文件读取到RAM中,拆分行,然后完成其余部分。这应该有效。

const fs = require('fs')
...
var data = fs.readFileSync('proxies.txt', 'utf8')
const readMe = data.split(/r?n/) 
const lineCount = readMe.length
const randomLineNumber = Math.floor(Math.random() * lineCount)
const randomLine = readMe[randomLineNumber]

如果你的文件包含很多行,这是一个非常糟糕的解决方案。它会浪费内存,readFileSync()会降低整个应用程序的速度。但实际上,如果你的文件只包含一两个千字节,那也没关系。

最新更新