Rev 95 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
// WARNING: This program uses the Assertion class. When it is run,// assertions must be turned on. For example, under Linux, use:// java -ea Genfile/** Generate a data file. The size is a multiple of 4096 bytes.The records are short ints, with each record having a valueless than 30,000.*/import java.io.*;import java.util.*;import java.math.*;public class Genfile2 {static final int BlockSize = 4096;static final int NumRecs = 2048; // Because they are short ints/** Initialize the random variable */static private Random value = new Random(); // Hold the Random class objectstatic int random(int n) {return Math.abs(value.nextInt()) % n;}public static void main(String args[]) throws IOException {assert (args.length == 3) && (args[0].charAt(0) == '-') :"\nUsage: Genfile <option> <filename> <size>" +"\nOptions ust be '-a' for ASCII, or '-b' for binary." +"\nSize is measured in blocks of 4096 bytes";int filesize = Integer.parseInt(args[2]); // Size of file in blocksDataOutputStream file = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(args[1])));int recs = NumRecs * filesize;if (args[0].charAt(1) == 'b') // Write out random numbersfor (int i=0; i<filesize; i++)for (int j=0; j<NumRecs; j++) {short val = (short)(random(29999) + 1);file.writeShort(val);}else if (args[0].charAt(1) == 'a') // Write out ASCII-readable valuesfor (int i=0; i<filesize; i++)for (int j=0; j<NumRecs; j++) {short val = (short)((8224 << 16) + random(26) + 0x2041);file.writeShort(val);}else assert false : "Bad parameters";file.flush();file.close();}}