If you need the best randomness currently available, visit RANDOM.ORG. You can get some cool super random bytes, ints, strings, for free. If you need lots, they have a subscription model too.
/*
* This class uses Java SecureRandom to generate a file of "secure random"
* Unicode characters. After cleanup for xml 1.0, we save it as a simple properties file.
*
* Do whatever you want with this.
* Really *
*/
import java.io.File;
import java.io.FileOutputStream;
import java.security.SecureRandom;
import java.util.Properties;
public class GenerateRandomText {
/**
* @param args
*/
public static void main(String[] args) {
int codepoint;
StringBuilder sb = new StringBuilder();
int line = 0;
String newline = "\n";
try {
// Initialize a secure random number generator
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
// we want 40 000 characters
for (int x = 0; x < 40000; x++) {
// get chars up to U 40 000, don't get ASCII, so just do + 255
codepoint = secureRandom.nextInt(40000) + 255;
// System.out.println("codepoint> "+codepoint);
line++;
// make it pretty by adding a newline
if (line > 100) {
sb.append(newline);
line = 0;
} else // cleanup
if ((codepoint == 0x9)
|| (codepoint == 0xA)
|| (codepoint == 0xD)
|| ((codepoint >= 0x20) && (codepoint <= 0xD7FF))
|| ((codepoint >= 0xE000) && (codepoint <= 0xFFFD))
|| ((codepoint >= 0x10000) && (codepoint <= 0x10FFFF))) {
sb.append(Character.toChars(codepoint));
}
}
File outputfile = new File(new File(".").getCanonicalPath() + "randomText.xml");
Properties props = new Properties();
props.put("page", sb.toString());
FileOutputStream outf = new FileOutputStream(outputfile);
props.storeToXML(outf, "-- random generated Unicode --");
outf.flush();
outf.close();
} catch (Exception e) {
}
}
}
No comments:
Post a Comment