これを行う方法がわかりません。どこから始めればよいですか?私はこれをグーグルで調べましたが、テキストファイルからランダムな行を引き出す方法についての結果は1つもありませんでした.
私が見つけた唯一のものはhttps://github.com/chrisinajar/node-rand-lineですが、機能しません。テキストファイルからランダムな行を読み取るにはどうすればよいですか?
これを行う方法がわかりません。どこから始めればよいですか?私はこれをグーグルで調べましたが、テキストファイルからランダムな行を引き出す方法についての結果は1つもありませんでした.
私が見つけた唯一のものはhttps://github.com/chrisinajar/node-rand-lineですが、機能しません。テキストファイルからランダムな行を読み取るにはどうすればよいですか?
おそらく、ファイルを読み取るための node.js 標準ライブラリ関数fs.readFileを調べて、次の行に沿って何かを作成することをお勧めします。
const fs = require("fs");
// note this will be async
function getRandomLine(filename, callback){
fs.readFile(filename, "utf-8", function(err, data){
if(err) {
throw err;
}
// note: this assumes `data` is a string - you may need
// to coerce it - see the comments for an approach
var lines = data.split('\n');
// choose one of the lines...
var line = lines[Math.floor(Math.random()*lines.length)]
// invoke the callback with our line
callback(line);
})
}
全体を読んで分割することができない場合は、このスタックオーバーフローを見てアイデアを探してください。
コードをテストするのに便利なノードがないので、正確なコードを提供することはできませんが、次のようにします。
これは完全にランダムではないことに注意してください。長い行はより重く重み付けされますが、行数を取得するためにファイル全体を読み取らずにそれを行う唯一の方法です。
このメソッドを使用すると、ファイル全体をメモリに保持せずに「ランダムな」行を取得できます。
私はデモコードを持っていないので、あなたに提案することができます
buffered reader
int returnRandom(arraySize)
0
するarraySize