package com.epickrram.workshop.perf.setup; ////////////////////////////////////////////////////////////////////////////////// // Copyright 2015 Mark Price mark at epickrram.com // // // // Licensed under the Apache License, Version 2.0 (the "License"); // // you may not use this file except in compliance with the License. // // You may obtain a copy of the License at // // // // http://www.apache.org/licenses/LICENSE-2.0 // // // // Unless required by applicable law or agreed to in writing, software // // distributed under the License is distributed on an "AS IS" BASIS, // // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // // See the License for the specific language governing permissions and // // limitations under the License. // ////////////////////////////////////////////////////////////////////////////////// import com.beust.jcommander.JCommander; import com.epickrram.workshop.perf.config.CommandLineArgs; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Random; public final class InputGenerator { private final CommandLineArgs commandLineArgs; public InputGenerator(final CommandLineArgs commandLineArgs) { this.commandLineArgs = commandLineArgs; } public static void main(final String[] args) throws Exception { final CommandLineArgs commandLineArgs = new CommandLineArgs(); new JCommander(commandLineArgs).parse(args); new InputGenerator(commandLineArgs).run(); System.out.printf("Created input journal of %dkb%n", (commandLineArgs.getNumberOfRecords() * commandLineArgs.getRecordLength() / 1024)); } private void run() throws IOException { final Random random = new Random(0xDEADC0DE); final byte[] record = new byte[commandLineArgs.getRecordLength()]; try(final OutputStream stream = new FileOutputStream(new File(commandLineArgs.getInputFile()))) { for(int recordNumber = 0; recordNumber < commandLineArgs.getNumberOfRecords(); recordNumber++) { random.nextBytes(record); stream.write(record); } } } }