2015-09-10 3 views
0

Так что для проекта, мы должны «есть программа принимает имя файла для чтения в из аргументов командной строки То есть, ваша программа должна быть исполняемой из командной строки с помощью вызова:.Как ввести имя файла, которое читается в аргументах командной строки?

~> java Project inputFile.txt

, который выведет измененное содержимое файла на стандартный вывод. "

, но я не знаю, как это сделать.

До сих пор мы рассмотрели, как использовать аргументы командной строки, но не как читать файл из этого местоположения. Какие-либо предложения?

+2

вы не читаете файл из аргументов, просто его имя и/или путь. что вы читаете как строку, то в своем коде: File f = new File (args [0]); – Stultuske

ответ

2

Скажем, вы вызываете программу, как

java MyMainClass /path/to/file 

Затем в методе main() просто использовать

File f = new File(args[0]) 

Затем вы можете проверить, что

f.exists() 
f.isFile() 
f.canRead() 

и т.д.

На самом деле прочитать файл, который вы можете следовать those instructions как предложены в комментариях по @Kevin Esche

+0

Обратите внимание, что OP фактически не спрашивает о том, что задано в заголовке :) –

+0

Действительно :) Для полноты я ссылался на комментарий @Kevin Esche, связанный с фактическим чтением файла. –

0
java MainClass <list of arguments> 

Теперь в главном классе вы получите все аргументы в String массиве, который передается в основном методе.

public static void main(String args[]) { 
    for(String argument : args) { 
    System.out.println(argument); 
    } 
} 
+0

как и в других ответах: «До сих пор мы рассмотрели, как использовать аргументы командной строки, но не как читать файл из этого местоположения. Любые предложения? ' – SomeJavaGuy

+0

Я бы предложил вам пересмотреть эти заметки. Потому что все ответы говорят то, что вы уже знаете. Пожалуйста, не принимайте это иначе. Просто вежливое предложение для вас. – YoungHobbit

0

Возможно, это поможет, оно считывает и распечатывает файл на консоли.

public static void main(String[] args) { 
    File f= new File(arg[0]); 

    InputStream is = new FileInputStream(f); 

    int byteReaded; 

    while ((byteReaded = is.read())!=-1) { 
     System.out.print((char)byteReaded); 

    } 
} 
0

При запуске программы Java с консоли вы звоните:

java programName list of inputs separated by space

Так что в вашем случае у вас есть:

java Project inputFile.txt

Когда виртуальная машина запускается и вызывает main() он займет все после имени вашего проекта и создаст массив строк, разделенный пробелами ,

Таким образом, в моей первой caommand линии я хотел бы получить:

{"list" + "of" + "inputs" + "separated" + "by" + "space"} 

Эта строка массив будет приходить в вашу программу в основной функции:

public static void main(String[] args) { ... } 

Поэтому в вашем случае, args[0] будет имя файла, которое вы ищете. Затем вы можете создать сортировщик файлов. Если вы не добавили никакого пути к началу имени файла, он будет искать файл в папке, в которой находится ваша папка src.

Надеюсь, это поможет.

Смежные вопросы