2012-03-26 22 views
1

テキストファイルから行を読み込むプログラムを作成しました。私は今、プログラムが実行されるたびにランダムな行を読むようにする必要があります。これは私の現在のコードの一部です:Javaのファイルからランダムな行を読み取る方法

if(Score<=5){ 
word = scan1 .nextLine(); 
System.out.println(word); 
} 

ランダムな線を選ぶ簡単な方法はありますか?

+1

「ランダムライン」をここでどのように定義しますか? –

+2

ここをクリックしてください:http://stackoverflow.com/questions/2218005/how-to-get-a-random-line-of-a-text-file-in-java – giorashc

答えて

-1

は、Randomで乱数を生成します。その番号でファイルから行を読むことができます。既に読み込まれた行のような検証を行う必要があります。

0

私はあなたに を提案します。1.まず、ファイル内の行の総数を取得します。次に、その合計内の乱数を取得する。 次に 3.ファイルをスキップして、乱数で示されたポイントまで移動します。次に 4.ファイルの行を読み取ります。

コードをご希望の場合は、始めてご利用いただけるようにいくつか用意することができますが、これは実装が非常に簡単です。

0

あなたが)、番号を生成するためにランダムに使用
が、それは「\ n」は改行文字
のインデックスだのための新たなライン探索を読み、その場所とのreadLine(へ(RANDOM)を追求することができます言ったようにそれから。

+0

ランダムのみを使用すると、ラインの真ん中。 –

2
public String getRandomLineFromTheFile(File file) 
{ 
    final RandomAccessFile f = new RandomAccessFile(file, "r"); 
    final long randomLocation = (long) (Math.random() * f.length()); 
    f.seek(randomLocation); 
    f.readLine(); 
    return f.readLine(); 
} 
  1. この機能は、短い行に比べて長い行に偏っています。
  2. この関数は、最初の行に大きく偏っています。 (これは修正することができます。)
+0

それをより正義にする方法を改善するには?いいアイデアはありますか? – Jaskey

関連する問題