OK、ランダムtxtファイルを生成する次のコードが見つかりました。基本的には、MapReduceの単語カウントシミュレーションを実行するために、いくつかの空白で区切られたランダムな単語が必要です。Javaでおおよそのサイズのランダムなtxtファイルを作成します。
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
PrintWriter writer = new PrintWriter("bigfile.txt", "UTF-8");
Random random = new Random();
for(int i = 0; i < 23695522; i++)
{
char[] word = new char[random.nextInt(8)+3]; // words of length 3 through 10. (1 and 2 letter words are boring.)
for(int j = 0; j < word.length; j++)
{
word[j] = (char)('a' + random.nextInt(26));
}
writer.print(new String(word) + ' ');
if (i % 10 == 0){
writer.println();
}
}
writer.close();
} catch (IOException e) {
// do something
}
}
}
は、今私は、ファイルが約事前に定義された大きさを持つようにするために必要なだけ反復を持つために、このコードを少し変更したいです。したがって、すべての反復では、2バイトごとに約6.5文字(一様な選択による)が生成されます。だから、私はバイトで必要なファイルのサイズを(6.5 * 2)で割って、結果をループの繰り返し回数として設定し、予想よりもはるかに小さいファイルを取得します。
* "each of 2 bytes" *? UTF-8でエンコードされたテキストファイルで、各文字が2バイト長であると思われる理由は何ですか?あなたのテキストはすべてASCIIなので、UTF-8で1バイト長です。 * 2バイトの長さにするには、文字セット "UTF-16"を使用します。 – Andreas