Example usage for java.util Scanner Scanner

List of usage examples for java.util Scanner Scanner

Introduction

In this page you can find the example usage for java.util Scanner Scanner.

Prototype

public Scanner(ReadableByteChannel source) 

Source Link

Document

Constructs a new Scanner that produces values scanned from the specified channel.

Usage

From source file:com.seanmadden.net.fast.SerialInterface.java

public static void main(String[] args) {
    SerialInterface inter = new SerialInterface(new JSONObject());
    inter.open();// w w w. j  ava2s. c o  m

    System.out.println("Welcome.  Commands with 'help'");
    String cmd = "";
    Scanner scan = new Scanner(System.in);
    do {
        System.out.print("> ");
        cmd = scan.nextLine();
        if (cmd.toLowerCase().equals("help")) {
            System.out.println("Commands:");
            System.out.println("help : prints this message");
            System.out.println("send <message> : sends <message> to interpretype.");
            System.out.println("quit : exits this program");
        } else if (cmd.toLowerCase().startsWith("send")) {
            String message = cmd.substring(cmd.toLowerCase().indexOf(' ') + 1);
            inter.sendDataToPort(message);
        }
    } while (!cmd.toLowerCase().equals("quit"));

    inter.close();
}

From source file:com.blackboard.WebdavBulkDeleterClient.java

public static void main(String[] args) {
    if (System.getProperty("log4j.configuration") != null) {
        PropertyConfigurator.configure(System.getProperty("log4j.configuration"));
    } else {//w ww.j  a va2 s.c  o m
        BasicConfigurator.configure();
    }

    // Perform command line parsing in an as friendly was as possible. 
    // Could be improved
    CommandLineParser parser = new PosixParser();
    Options options = new Options();

    // Use a map to store our options and loop over it to check and parse options via
    // addAllOptions() and verifyOptions() below
    Map<String, String> optionsAvailable = new HashMap<String, String>();
    optionsAvailable.put("deletion-list", "The file containing the list of courses to delete");
    optionsAvailable.put("user", "User with deletion privileges, usually bbsupport");
    optionsAvailable.put("password", "Password - ensure you escape any shell characters");
    optionsAvailable.put("url", "The Learn URL - usually https://example.com/bbcswebdav/courses");

    options = addAllOptions(options, optionsAvailable);

    options.addOption(OptionBuilder.withLongOpt("no-verify-ssl").withDescription("Don't verify SSL")
            .hasArg(false).create());

    CommandLine line = null;
    try {
        line = parser.parse(options, args);
        verifyOptions(line, optionsAvailable);
    } catch (ParseException e) {
        // Detailed reason will be printed by verifyOptions above
        logger.fatal("Incorrect options specified, exiting...");
        System.exit(1);
    }

    Scanner scanner = null;
    try {
        scanner = new Scanner(new File(line.getOptionValue("deletion-list")));
    } catch (FileNotFoundException e) {
        logger.fatal("Cannot open file : " + e.getLocalizedMessage());
        System.exit(1);
    }

    // By default we verify SSL certs
    boolean verifyCertStatus = true;
    if (line.hasOption("no-verify-ssl")) {
        verifyCertStatus = false;
    }

    // Loop through deletion list and delete courses if they exist.
    LearnServer instance;
    try {
        logger.debug("Attempting to open connection");
        instance = new LearnServer(line.getOptionValue("user"), line.getOptionValue("password"),
                line.getOptionValue("url"), verifyCertStatus);
        String currentCourse = null;
        logger.debug("Connection open");
        while (scanner.hasNextLine()) {
            currentCourse = scanner.nextLine();
            if (instance.exists(currentCourse)) {
                try {
                    instance.deleteCourse(currentCourse);
                    logger.info("Processing " + currentCourse + " : Result - Deletion Successful");
                } catch (IOException ioe) {
                    logger.error("Processing " + currentCourse + " : Result - Could not Delete ("
                            + ioe.getLocalizedMessage() + ")");
                }
            } else {
                logger.info("Processing " + currentCourse + " : Result - Course does not exist");
            }
        }
    } catch (IllegalArgumentException e) {
        logger.fatal(e.getLocalizedMessage());
        System.exit(1);
    } catch (IOException ioe) {
        logger.debug(ioe);
        logger.fatal(ioe.getMessage());
    }

}

From source file:net.sfr.tv.mom.mgt.HornetqConsole.java

/**
 * @param args the command line arguments
 *///w ww  . j av a2 s .  co  m
public static void main(String[] args) {

    try {

        String jmxHost = "127.0.0.1";
        String jmxPort = "6001";

        // Process command line arguments
        String arg;
        for (int i = 0; i < args.length; i++) {
            arg = args[i];
            switch (arg) {
            case "-h":
                jmxHost = args[++i];
                break;
            case "-p":
                jmxPort = args[++i];
                break;
            default:
                break;
            }
        }

        // Check for arguments consistency
        if (StringUtils.isEmpty(jmxHost) || !NumberUtils.isNumber(jmxPort)) {
            LOGGER.info("Usage : ");
            LOGGER.info("hq-console.jar <-h host(127.0.0.1)> <-p port(6001)>\n");
            System.exit(1);
        }

        System.out.println(
                SystemUtils.LINE_SEPARATOR.concat(Ansi.format("HornetQ Console ".concat(VERSION), Color.CYAN)));

        final StringBuilder _url = new StringBuilder("service:jmx:rmi://").append(jmxHost).append(':')
                .append(jmxPort).append("/jndi/rmi://").append(jmxHost).append(':').append(jmxPort)
                .append("/jmxrmi");

        final String jmxServiceUrl = _url.toString();
        JMXConnector jmxc = null;

        final CommandRouter router = new CommandRouter();

        try {
            jmxc = JMXConnectorFactory.connect(new JMXServiceURL(jmxServiceUrl), null);
            assert jmxc != null; // jmxc must be not null
        } catch (final MalformedURLException e) {
            System.out.println(SystemUtils.LINE_SEPARATOR
                    .concat(Ansi.format(jmxServiceUrl + " :" + e.getMessage(), Color.RED)));
        } catch (Throwable t) {
            System.out.println(SystemUtils.LINE_SEPARATOR.concat(
                    Ansi.format("Unable to connect to JMX service URL : ".concat(jmxServiceUrl), Color.RED)));
            System.out.print(SystemUtils.LINE_SEPARATOR.concat(
                    Ansi.format("Did you add jmx-staticport-agent.jar to your classpath ?", Color.MAGENTA)));
            System.out.println(SystemUtils.LINE_SEPARATOR.concat(Ansi.format(
                    "Or did you set the com.sun.management.jmxremote.port option in the hornetq server startup script ?",
                    Color.MAGENTA)));
            System.exit(-1);
        }

        System.out.println("\n".concat(Ansi
                .format("Successfully connected to JMX service URL : ".concat(jmxServiceUrl), Color.YELLOW)));

        final MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();

        // PRINT SERVER STATUS REPORT
        System.out.print((String) router.get(Command.STATUS, Option.VM).execute(mbsc, null));
        System.out.print((String) router.get(Command.STATUS, Option.SERVER).execute(mbsc, null));
        System.out.print((String) router.get(Command.STATUS, Option.CLUSTER).execute(mbsc, null));

        printHelp(router);

        // START COMMAND LINE
        Scanner scanner = new Scanner(System.in);
        System.out.print("> ");
        String input;
        while (!(input = scanner.nextLine().concat(" ")).equals("exit ")) {

            String[] cliArgs = input.split("\\ ");
            CommandHandler handler;

            if (cliArgs.length < 1) {
                System.out.print("> ");
                continue;
            }

            Command cmd = Command.fromString(cliArgs[0]);
            if (cmd == null) {
                System.out.print(Ansi.format("Syntax error !", Color.RED).concat("\n"));
                cmd = Command.HELP;
            }

            switch (cmd) {
            case STATUS:
            case LIST:
            case DROP:

                Set<Option> options = router.get(cmd);

                for (Option opt : options) {

                    if (cliArgs[1].equals(opt.toString())) {
                        handler = router.get(cmd, opt);

                        String[] cmdOpts = null;
                        if (cliArgs.length > 2) {
                            cmdOpts = new String[cliArgs.length - 2];
                            for (int i = 0; i < cmdOpts.length; i++) {
                                cmdOpts[i] = cliArgs[2 + i];
                            }
                        }

                        Object result = handler.execute(mbsc, cmdOpts);
                        if (result != null && String.class.isAssignableFrom(result.getClass())) {
                            System.out.print((String) result);
                        }
                        System.out.print("> ");
                    }
                }

                break;

            case FORK:
                // EXECUTE SYSTEM COMMAND
                ProcessBuilder pb = new ProcessBuilder(Arrays.copyOfRange(cliArgs, 1, cliArgs.length));
                pb.inheritIO();
                pb.start();
                break;

            case HELP:
                printHelp(router);
                break;
            }
        }
    } catch (MalformedURLException ex) {
        LOGGER.log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        LOGGER.log(Level.SEVERE, null, ex);
    }

    echo(SystemUtils.LINE_SEPARATOR.concat(Ansi.format("Bye!", Color.CYAN)));

}

From source file:dingwen.Command.java

public static void main(String[] args) {
    ShapeCache shapeCache = new ShapeCache();
    String filePath = Helper.DEFAULT_FILE;
    System.out.println(CommonStatement.NOTE);

    if (args != null && args.length != 0) {
        filePath = args[0];/*from  www. j  ava2s  .  c  o m*/
    }
    shapeCache.init(filePath);

    Scanner scanner = new Scanner(System.in);
    while (true) {
        try {
            String command = scanner.nextLine();
            if (command.contains("add")) {
                Command.addShapeCmd(command, shapeCache);

            } else if (command.contains("remove")) {
                Command.removeShapeCmd(command, shapeCache);

            } else if (command.contains("list")) {
                Command.listShapesCmd(command, shapeCache);

            } else if (command.contains("contains")) {
                Command.containsCmd(command, shapeCache);

            } else if (command.equals("help shape")) {
                Command.shapeHelp();

            } else if (command.contains("help")) {
                Command.helpCmd();

            } else if (command.contains("exit")) {
                Command.exitCmd();
                break;

            } else {
                System.out.println(CommonStatement.INPUT_NOT_RECOGNIZE);
            }
        } catch (Exception e) {
            System.out.println(CommonStatement.INPUT_NOT_RECOGNIZE);
        }
    }

}

From source file:com.ibm.watson.app.common.tools.services.classifier.TrainClassifier.java

public static void main(String[] args) throws Exception {
    Option urlOption = createOption(URL_OPTION, URL_OPTION_LONG, true,
            "The absolute URL of the NL classifier service to connect to. If omitted, the default will be used ("
                    + DEFAULT_URL + ")",
            false, "url");
    Option usernameOption = createOption(USERNAME_OPTION, USERNAME_OPTION_LONG, true,
            "The username to use during authentication to the NL classifier service", true, "username");
    Option passwordOption = createOption(PASSWORD_OPTION, PASSWORD_OPTION_LONG, true,
            "The password to use during authentication to the NL classifier service", true, "password");
    Option fileOption = createOption(FILE_OPTION, FILE_OPTION_LONG, true,
            "The filepath to be used as training data", false, "file");
    Option deleteOption = createOption(DELETE_OPTION, DELETE_OPTION_LONG, false,
            "If specified, the classifier instance will be deleted if training is not successful");

    final Options options = buildOptions(urlOption, usernameOption, passwordOption, fileOption, deleteOption);

    CommandLine cmd;//w w  w. j  a va 2s.c om
    try {
        CommandLineParser parser = new GnuParser();
        cmd = parser.parse(options, args);
    } catch (ParseException e) {
        System.err.println(MessageKey.AQWEGA14016E_could_not_parse_cmd_line_args_1.getMessage(e.getMessage())
                .getFormattedMessage());
        HelpFormatter formatter = new HelpFormatter();
        formatter.printHelp(120, "java " + TrainClassifier.class.getName(), null, options, null);
        return;
    }

    final String url = cmd.hasOption(URL_OPTION) ? cmd.getOptionValue(URL_OPTION) : DEFAULT_URL;
    final String username = cmd.getOptionValue(USERNAME_OPTION).trim();
    final String password = cmd.getOptionValue(PASSWORD_OPTION).trim();

    if (username.isEmpty() || password.isEmpty()) {
        throw new IllegalArgumentException(
                MessageKey.AQWEGA14014E_username_and_password_cannot_empty.getMessage().getFormattedMessage());
    }

    final NLClassifierRestClient client = new NLClassifierRestClient(url, username, password);

    listClassifiers(client);
    System.out.println(MessageKey.AQWEGA10012I_h_help.getMessage().getFormattedMessage());

    String userInput;
    boolean exit = false;
    NLClassifier classifier = null;
    boolean isTraining = false;

    if (cmd.hasOption(FILE_OPTION)) {
        // File option was specified, go directly to training
        classifier = train(client, cmd.getOptionValue(FILE_OPTION));
        isTraining = true;
    }

    try (final Scanner scanner = new Scanner(System.in)) {
        while (!exit) {
            System.out.print("> ");
            userInput = scanner.nextLine().trim();

            if (userInput.equals("q") || userInput.equals("quit") || userInput.equals("exit")) {
                exit = true;
            } else if (userInput.equals("h") || userInput.equals("help")) {
                printHelp();
            } else if (userInput.equals("l") || userInput.equals("list")) {
                listClassifiers(client);
            } else if (userInput.equals("t") || userInput.equals("train")) {
                if (!isTraining) {
                    System.out.print("Enter filename: ");
                    String filename = scanner.nextLine().trim();
                    classifier = train(client, filename);
                    isTraining = true;
                } else {
                    System.err.println(MessageKey.AQWEGA10013I_t_cannot_used_during_training.getMessage()
                            .getFormattedMessage());
                }
            } else if (userInput.equals("s") || userInput.equals("status")) {
                if (isTraining) {
                    exit = getStatus(client, classifier, cmd.hasOption(DELETE_OPTION));
                } else {
                    System.err.println(MessageKey.AQWEGA10014I_s_can_used_during_training.getMessage()
                            .getFormattedMessage());
                }
            } else if (userInput.equals("c") || userInput.equals("classify")) {
                if (classifier != null && classifier.getStatus().equals(Status.AVAILABLE)) {
                    isTraining = false;
                    System.out.print(MessageKey.AQWEGA10015I_text_classify.getMessage().getFormattedMessage());
                    String text = scanner.nextLine().trim();
                    classify(client, classifier, text);
                } else {
                    System.err.println(MessageKey.AQWEGA10016I_c_can_used_after_training_has_completed
                            .getMessage().getFormattedMessage());
                }
            } else {
                System.err.println(
                        MessageKey.AQWEGA14017E_unknown_command_1.getMessage(userInput).getFormattedMessage());
            }
            Thread.sleep(100); // Give the out / err consoles time to battle it out before printing the command prompt
        }
    }
}

From source file:citation_prediction.CitationCore.java

public static void main(String[] args) throws IOException {

    CitationCore.CitationCoreTest cct = new CitationCore().new CitationCoreTest(new Scanner(System.in));
    cct.run_user_tests();//from   w ww  .  j a v a 2s .  c  om
}

From source file:ch.ethz.dcg.jukefox.cli.CliJukefoxApplication.java

public static void main(String[] args) {

    CommandLineParser parser = new PosixParser();
    LogLevel logLevel = LogLevel.ERROR;/*from   ww  w . j a  va2  s .com*/
    try {
        CommandLine line = parser.parse(getCliOptions(), args);
        if (line.hasOption(VERBOSE_OPTION)) {
            logLevel = LogLevel.VERBOSE;
        }
    } catch (ParseException e1) {
        Log.e(TAG, "Unexpected exception: " + e1.getMessage());
    }

    printWelcome();

    Log.setLogLevel(logLevel);

    // Send logs async
    new Thread(new Runnable() {

        @Override
        public void run() {
            playerModel.getLogManager().sendLogs();
        }
    }).start();

    CliJukefoxApplication application = new CliJukefoxApplication();

    try {
        scanner = new Scanner(System.in);
        application.start();

        ImportState importState = libraryImportManager.getImportState();
        importState.addListener(application);
        //System.out.println(importState.getProgress().getStatusMessage());

        while (running) {
            String next = scanner.nextLine();
            if (next.isEmpty()) {
                continue;
            }
            try {
                application.getCommandLineInterface().execute(next);
            } catch (ExecutionException e) {
                System.out.println("Invalid input, please use following commands: ");
                application.getCommandLineInterface().execute("help");
            }

        }
    } catch (ExecutionException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:eu.openanalytics.rsb.SuiteITCase.java

/**
 * To help with any sort of manual testing.
 *///from   w  ww  .  ja  va 2s .  c o m
public static void main(final String[] args) throws Exception {
    setupTestSuite();

    System.out.println("Type ENTER to stop testing...");
    final Scanner scanner = new Scanner(System.in);
    scanner.nextLine();
    scanner.close();

    teardownTestSuite();
}

From source file:com.vmware.fdmsecprotomgmt.PasswdEncrypter.java

/**
 * Entry point into this Class//from w w w.j  av a2 s .c o m
 */
public static void main(String[] args) {
    boolean validVals = false;
    String secretKey = "";
    String esxi_pwd = "";
    System.out.println("This Utility program would help you to ENCRYPT password with a given secretKey");
    Scanner in = new Scanner(System.in);
    System.out.print("Enter ESXi host password:");
    esxi_pwd = in.nextLine().trim();
    if (esxi_pwd.equals("")) {
        System.err.println("Invalid password entry, please try again ...");
    } else {
        System.out.println(
                "Enter SecretKey to be used for encrypting ESXi Password. MUST NOT exceed 16 characters,"
                        + "and should be different from ESXi password; for better security");
        secretKey = in.nextLine().trim();

        if (secretKey.equals("")) {
            System.err.println("Invalid SecretKey entry, please try again ...");
        } else if (secretKey.length() > STD_KEYSIZE) {
            System.err.println("SecretKey can NOT exceed 16 characters. Please try again");
        } else if (secretKey.length() < STD_KEYSIZE) {
            int remainingChars = STD_KEYSIZE - secretKey.length();
            while (remainingChars > 0) {
                secretKey = secretKey + PADDING_ARRAY[remainingChars];
                --remainingChars;
            }
        }
        if (secretKey.length() == STD_KEYSIZE) {
            validVals = true;
        }
    }

    // Go for encrypting the password with provided SecretKey
    if (validVals) {
        String encryptedStr = encrypt(secretKey, esxi_pwd);
        if ((!encryptedStr.equals(""))) {
            // Validate that on decrypt, you would receive the same password
            String decryptedStr = decrypt(secretKey, encryptedStr);
            if (!decryptedStr.equals("")) {
                if (decryptedStr.equals(esxi_pwd)) {
                    System.out.println("Successfully encrypted the password");
                    System.out.println("----------------------------------------------------------------");
                    System.out.println("ESXi Password: " + esxi_pwd);
                    System.out.println("Your Secret key: " + secretKey);
                    System.out.println("Encrypted String for the password: " + encryptedStr);
                    System.out.println("[TESTED] Decrypted string: " + decryptedStr);
                    System.out.println("----------------------------------------------------------------");
                    System.out.println("**** NOTE ****");
                    System.out.println(
                            "Please remember the secretkey, which is later needed when running TLS-Configuration script");
                } else {
                    System.err.println("Failed to match the password with decrypted string");
                }
            } else {
                System.err.println("Failed to decrypt the encrypted string");
            }
        } else {
            System.err.println("Failed to encrypt the provided password");
        }
    }
    // close the scanner
    in.close();
}

From source file:fr.tpt.s3.mcdag.bench.MainBench.java

public static void main(String[] args) throws IOException, InterruptedException {

    // Command line options
    Options options = new Options();

    Option input = new Option("i", "input", true, "MC-DAG XML models");
    input.setRequired(true);/*from   ww  w.  j a va  2  s  .  com*/
    input.setArgs(Option.UNLIMITED_VALUES);
    options.addOption(input);

    Option output = new Option("o", "output", true, "Folder where results have to be written.");
    output.setRequired(true);
    options.addOption(output);

    Option uUti = new Option("u", "utilization", true, "Utilization.");
    uUti.setRequired(true);
    options.addOption(uUti);

    Option output2 = new Option("ot", "output-total", true, "File where total results are being written");
    output2.setRequired(true);
    options.addOption(output2);

    Option oCores = new Option("c", "cores", true, "Cores given to the test");
    oCores.setRequired(true);
    options.addOption(oCores);

    Option oLvls = new Option("l", "levels", true, "Levels tested for the system");
    oLvls.setRequired(true);
    options.addOption(oLvls);

    Option jobs = new Option("j", "jobs", true, "Number of threads to be launched.");
    jobs.setRequired(false);
    options.addOption(jobs);

    Option debug = new Option("d", "debug", false, "Debug logs.");
    debug.setRequired(false);
    options.addOption(debug);

    /*
     * Parsing of the command line
     */
    CommandLineParser parser = new DefaultParser();
    HelpFormatter formatter = new HelpFormatter();
    CommandLine cmd;

    try {
        cmd = parser.parse(options, args);
    } catch (ParseException e) {
        System.err.println(e.getMessage());
        formatter.printHelp("Benchmarks MultiDAG", options);
        System.exit(1);
        return;
    }

    String inputFilePath[] = cmd.getOptionValues("input");
    String outputFilePath = cmd.getOptionValue("output");
    String outputFilePathTotal = cmd.getOptionValue("output-total");
    double utilization = Double.parseDouble(cmd.getOptionValue("utilization"));
    boolean boolDebug = cmd.hasOption("debug");
    int nbLvls = Integer.parseInt(cmd.getOptionValue("levels"));
    int nbJobs = 1;
    int nbFiles = inputFilePath.length;

    if (cmd.hasOption("jobs"))
        nbJobs = Integer.parseInt(cmd.getOptionValue("jobs"));

    int nbCores = Integer.parseInt(cmd.getOptionValue("cores"));

    /*
     *  While files need to be allocated
     *  run the tests in the pool of threads
     */

    // For dual-criticality systems we call a specific thread
    if (nbLvls == 2) {

        System.out.println(">>>>>>>>>>>>>>>>>>>>> NB levels " + nbLvls);

        int i_files2 = 0;
        String outFile = outputFilePath.substring(0, outputFilePath.lastIndexOf('.'))
                .concat("-schedulability.csv");
        PrintWriter writer = new PrintWriter(outFile, "UTF-8");
        writer.println(
                "Thread; File; FSched (%); FPreempts; FAct; LSched (%); LPreempts; LAct; ESched (%); EPreempts; EAct; HSched(%); HPreempts; HAct; Utilization");
        writer.close();

        ExecutorService executor2 = Executors.newFixedThreadPool(nbJobs);
        while (i_files2 != nbFiles) {
            BenchThreadDualCriticality bt2 = new BenchThreadDualCriticality(inputFilePath[i_files2], outFile,
                    nbCores, boolDebug);

            executor2.execute(bt2);
            i_files2++;
        }

        executor2.shutdown();
        executor2.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);

        int fedTotal = 0;
        int laxTotal = 0;
        int edfTotal = 0;
        int hybridTotal = 0;
        int fedPreempts = 0;
        int laxPreempts = 0;
        int edfPreempts = 0;
        int hybridPreempts = 0;
        int fedActiv = 0;
        int laxActiv = 0;
        int edfActiv = 0;
        int hybridActiv = 0;
        // Read lines in file and do average
        int i = 0;
        File f = new File(outFile);
        @SuppressWarnings("resource")
        Scanner line = new Scanner(f);
        while (line.hasNextLine()) {
            String s = line.nextLine();
            if (i > 0) { // To skip the first line
                try (Scanner inLine = new Scanner(s).useDelimiter("; ")) {
                    int j = 0;

                    while (inLine.hasNext()) {
                        String val = inLine.next();
                        if (j == 2) {
                            fedTotal += Integer.parseInt(val);
                        } else if (j == 3) {
                            fedPreempts += Integer.parseInt(val);
                        } else if (j == 4) {
                            fedActiv += Integer.parseInt(val);
                        } else if (j == 5) {
                            laxTotal += Integer.parseInt(val);
                        } else if (j == 6) {
                            laxPreempts += Integer.parseInt(val);
                        } else if (j == 7) {
                            laxActiv += Integer.parseInt(val);
                        } else if (j == 8) {
                            edfTotal += Integer.parseInt(val);
                        } else if (j == 9) {
                            edfPreempts += Integer.parseInt(val);
                        } else if (j == 10) {
                            edfActiv += Integer.parseInt(val);
                        } else if (j == 11) {
                            hybridTotal += Integer.parseInt(val);
                        } else if (j == 12) {
                            hybridPreempts += Integer.parseInt(val);
                        } else if (j == 13) {
                            hybridActiv += Integer.parseInt(val);
                        }
                        j++;
                    }
                }
            }
            i++;
        }

        // Write percentage
        double fedPerc = (double) fedTotal / nbFiles;
        double laxPerc = (double) laxTotal / nbFiles;
        double edfPerc = (double) edfTotal / nbFiles;
        double hybridPerc = (double) hybridTotal / nbFiles;

        double fedPercPreempts = (double) fedPreempts / fedActiv;
        double laxPercPreempts = (double) laxPreempts / laxActiv;
        double edfPercPreempts = (double) edfPreempts / edfActiv;
        double hybridPercPreempts = (double) hybridPreempts / hybridActiv;

        Writer wOutput = new BufferedWriter(new FileWriter(outputFilePathTotal, true));
        wOutput.write(Thread.currentThread().getName() + "; " + utilization + "; " + fedPerc + "; "
                + fedPreempts + "; " + fedActiv + "; " + fedPercPreempts + "; " + laxPerc + "; " + laxPreempts
                + "; " + laxActiv + "; " + laxPercPreempts + "; " + edfPerc + "; " + edfPreempts + "; "
                + edfActiv + "; " + edfPercPreempts + "; " + hybridPerc + "; " + hybridPreempts + "; "
                + hybridActiv + "; " + hybridPercPreempts + "\n");
        wOutput.close();

    } else if (nbLvls > 2) {
        int i_files2 = 0;
        String outFile = outputFilePath.substring(0, outputFilePath.lastIndexOf('.'))
                .concat("-schedulability.csv");
        PrintWriter writer = new PrintWriter(outFile, "UTF-8");
        writer.println(
                "Thread; File; LSched (%); LPreempts; LAct; ESched (%); EPreempts; EAct; HSched(%); HPreempts; HAct; Utilization");
        writer.close();

        ExecutorService executor2 = Executors.newFixedThreadPool(nbJobs);
        while (i_files2 != nbFiles) {
            BenchThreadNLevels bt2 = new BenchThreadNLevels(inputFilePath[i_files2], outFile, nbCores,
                    boolDebug);

            executor2.execute(bt2);
            i_files2++;
        }

        executor2.shutdown();
        executor2.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);

        int laxTotal = 0;
        int edfTotal = 0;
        int hybridTotal = 0;
        int laxPreempts = 0;
        int edfPreempts = 0;
        int hybridPreempts = 0;
        int laxActiv = 0;
        int edfActiv = 0;
        int hybridActiv = 0;
        // Read lines in file and do average
        int i = 0;
        File f = new File(outFile);
        @SuppressWarnings("resource")
        Scanner line = new Scanner(f);
        while (line.hasNextLine()) {
            String s = line.nextLine();
            if (i > 0) { // To skip the first line
                try (Scanner inLine = new Scanner(s).useDelimiter("; ")) {
                    int j = 0;

                    while (inLine.hasNext()) {
                        String val = inLine.next();
                        if (j == 2) {
                            laxTotal += Integer.parseInt(val);
                        } else if (j == 3) {
                            laxPreempts += Integer.parseInt(val);
                        } else if (j == 4) {
                            laxActiv += Integer.parseInt(val);
                        } else if (j == 5) {
                            edfTotal += Integer.parseInt(val);
                        } else if (j == 6) {
                            edfPreempts += Integer.parseInt(val);
                        } else if (j == 7) {
                            edfActiv += Integer.parseInt(val);
                        } else if (j == 8) {
                            hybridTotal += Integer.parseInt(val);
                        } else if (j == 9) {
                            hybridPreempts += Integer.parseInt(val);
                        } else if (j == 10) {
                            hybridActiv += Integer.parseInt(val);
                        }
                        j++;
                    }
                }
            }
            i++;
        }

        // Write percentage
        double laxPerc = (double) laxTotal / nbFiles;
        double edfPerc = (double) edfTotal / nbFiles;
        double hybridPerc = (double) hybridTotal / nbFiles;

        double laxPercPreempts = (double) laxPreempts / laxActiv;
        double edfPercPreempts = (double) edfPreempts / edfActiv;
        double hybridPercPreempts = (double) hybridPreempts / hybridActiv;

        Writer wOutput = new BufferedWriter(new FileWriter(outputFilePathTotal, true));
        wOutput.write(Thread.currentThread().getName() + "; " + utilization + "; " + laxPerc + "; "
                + laxPreempts + "; " + laxActiv + "; " + laxPercPreempts + "; " + edfPerc + "; " + edfPreempts
                + "; " + edfActiv + "; " + edfPercPreempts + "; " + hybridPerc + "; " + hybridPreempts + "; "
                + hybridActiv + "; " + hybridPercPreempts + "\n");
        wOutput.close();

    } else {
        System.err.println("Wrong number of levels");
        System.exit(-1);
    }

    System.out.println("[BENCH Main] Done benchmarking U = " + utilization + " Levels " + nbLvls);
}