36 System.err.println("");
37 System.err.println("Makes a file named FILENAME of size FILESIZE.");
38 System.err.println("If FILETYPE is \"MostlyEmpty\", the file contents is mostly null bytes");
39 System.err.println("(which might occupy no disk space if the right OS support exists).");
40 System.err.println("If FILETYPE is \"SlightlyCompressible\", the file contents are");
41 System.err.println("approximately 90% random data.");
42 System.exit(1);
43 }
44
45 public static void main (String[] args) throws IOException {
46 if (args.length != 3)
47 usageError();
48 String filetype = args[0];
49 String filename = args[1];
50 long filesize = Long.parseLong(args[2]);
51
52 if (! (filetype.equals("MostlyEmpty") ||
53 filetype.equals("SlightlyCompressible")))
54 usageError();
55
56 RandomAccessFile raf = new RandomAccessFile(filename, "rw");
57
58 if (filetype.equals("SlightlyCompressible")) {
59 byte[] randomBytes = new byte[16384];
60 byte[] nullBytes = new byte[randomBytes.length/10];
61 Random rand = new Random();
62 for (int i = 0; raf.length() < filesize; ++i) {
63 rand.nextBytes(randomBytes);
64 raf.write(nullBytes);
65 raf.write(randomBytes);
66 }
67 }
68
69 // Make sure file is exactly the requested size, and that
70 // a unique identifying trailer is written.
71 byte[] filenameBytes = filename.getBytes("UTF8");
72 raf.seek(filesize-filenameBytes.length);
73 raf.write(filenameBytes);
74 raf.setLength(filesize);
75 raf.close();
76 }
77 }
|
36 System.err.println("");
37 System.err.println("Makes a file named FILENAME of size FILESIZE.");
38 System.err.println("If FILETYPE is \"MostlyEmpty\", the file contents is mostly null bytes");
39 System.err.println("(which might occupy no disk space if the right OS support exists).");
40 System.err.println("If FILETYPE is \"SlightlyCompressible\", the file contents are");
41 System.err.println("approximately 90% random data.");
42 System.exit(1);
43 }
44
45 public static void main (String[] args) throws IOException {
46 if (args.length != 3)
47 usageError();
48 String filetype = args[0];
49 String filename = args[1];
50 long filesize = Long.parseLong(args[2]);
51
52 if (! (filetype.equals("MostlyEmpty") ||
53 filetype.equals("SlightlyCompressible")))
54 usageError();
55
56 try (RandomAccessFile raf = new RandomAccessFile(filename, "rw")) {
57 if (filetype.equals("SlightlyCompressible")) {
58 byte[] randomBytes = new byte[16384];
59 byte[] nullBytes = new byte[randomBytes.length/10];
60 Random rand = new Random();
61 for (int i = 0; raf.length() < filesize; ++i) {
62 rand.nextBytes(randomBytes);
63 raf.write(nullBytes);
64 raf.write(randomBytes);
65 }
66 }
67
68 // Make sure file is exactly the requested size, and that
69 // a unique identifying trailer is written.
70 byte[] filenameBytes = filename.getBytes("UTF8");
71 raf.seek(filesize-filenameBytes.length);
72 raf.write(filenameBytes);
73 raf.setLength(filesize);
74 }
75 }
76 }
|