Java: использование аргументов командной строки для обработки имен файлов - PullRequest
0 голосов
/ 31 марта 2010

Я пишу программу, которая будет определять количество строк, символов и среднюю длину слова для текстового файла. Для программы в спецификациях говорится, что файл или файлы будут введены в качестве аргумента командной строки и что мы должны создать объект TestStatistic для каждого введенного файла. Я не понимаю, как написать код для создания объектов TestStatistic, если пользователь вводит более одного файла.

Ответы [ 4 ]

4 голосов
/ 31 марта 2010

Самый простой способ обработки аргументов командной строки:

public class TestProgram
{
    public static void main(final String[] args)
    {
        for (String s : args)
        {
            // do something with each arg
        }
        System.exit(0);
    }
}

Предпочтительным способом является использование чего-то, что управляет аргументами командной строки для вас. Я предлагаю JSAP: простой анализатор аргументов Java .

1 голос
/ 31 марта 2010

Здесь приведено расширение для других общих ответов, более подробное описание.

public class TextFileProcessor
{
    private List testStatisticObjects = new ArrayList();

    private void addFile(String fileName)
    {
        testStatisticObjects.add(new TestStatistic(fileName));
    }

    public static void main(String[] args)
    {
        TextFileProcessor processor = new TextFileProcessor();
        for (String commandLineArgument : args)
        {
            //consider validating commandLineArgument here
            processor.addFile(commandLineArgument);
        }
        ...
    }
}
1 голос
/ 31 марта 2010

Похоже, вам просто нужно перебрать аргументы командной строки и создать объект TestStatistic для каждого.

, например

public static void main(String[] args)
{
   for (String arg : args) {
      TestStatistic ts = new TestStatistic(arg); // assuming 'arg' is the name of a file
   }
   // etc...
0 голосов
/ 31 марта 2010

Вы также можете использовать что-то вроде Commons CLI для обработки командной строки.

...