Вопрос о новичке, передающий в имени файла / каталог в командную строку в Java

Я пытаюсь сделать некоторую обработку на том, вводит ли пользователь (1) имя файла, или (2) имя каталога в командную строку. Что-либо еще должно бросить ошибку. Начиная с самого простого случая, я записал это:

import java.io.*;
import java.util.*;

public class RemoveDuplicates {

    public static void main(String[] args) {
        if (args.length != 1) {
            System.out.println("Program accepts one command-line argument.  Exiting!");
            System.exit(1);
        }
        File f = new File(args[0]);
        if (f.isDirectory()) {
            System.out.println("is directory");
        }
        else if (f.isFile()) {
            System.out.println("is file");
        }
        else {
            System.out.println("Shouldn't happen");
        }
    }
}

в командной строке я ввожу: java RemoveDuplicates example.txt и я получаем reuslts, "Не должен происходить". Я также попробовал "example.txt" java RemoveDuplicates, и это не работает также. Таким образом, я задавался вопросом, является ли мой код неверным, или как я передаю его в командную строку, является неправильным при начинающих.

Во-вторых, как Вы передаете в имени каталога? Как то, если Ваш каталог был myDirectory, это то же самое: java RemoveDuplicates myDirectory

В-третьих, почему, если я поместил свой Файл f = новый Файл (args [0]) в блок попытки и имею блок выгоды, я получаю ошибку компиляции о том, что находится в моем блоке попытки, никогда не выдает исключение. Я думал, что Файл выдал исключение?Заранее спасибо!

6
задан Crystal 2 August 2010 в 04:36
поделиться