2014-10-15 3 views
0

Как я могу позволить пользователю определить имя файла при запуске программы? Мое имя файла назначается переменной «f» и в настоящее время жестко закодировано, но как я могу запустить программу и одновременно указать на определенный файл ... например,Как установить имя переменной файла при выполнении

Как назначить это для " е "??

System.out.println («использование: java CheckBalanced»);

ListReferenceBased stack = new ListReferenceBased(); 
    int exception=0; 
    File f=new File("ef.txt"); 


    FileReader fr = null; 
    try { 
     fr = new FileReader(f); 
    } catch (FileNotFoundException e) { 

     e.printStackTrace(); 
    } 
+0

пролетит как аргумент командной строки http://docs.oracle.com/javase /tutorial/essential/environment/cmdLineArgs.html – SMA

ответ

1

Во-первых, изменить сообщение об использовании, как

System.out.println("usage: java CheckBalanced <FILE>"); 

Затем

File f=new File((args.length < 1) ? "ef.txt" : args[0]); 
+0

Спасибо, это именно то, что я искал, он отлично работает! – user3020002

0

Если это имеет основной метод, чем сделать следующее:

Вы можете вызвать через java CheckBalanced PathToFileName где PathToFileName - это местоположение файла в файловой системе.

Примером может быть java CheckBalanced "C:/ef.txt"

public static void main(String[] args) { 

    String pathToFile = args[0]; 

    ListReferenceBased stack = new ListReferenceBased(); 
    int exception = 0; 
    File f = new File(pathToFile); 

    FileReader fr = null; 
    try { 
     fr = new FileReader(f); 
    } catch (FileNotFoundException e) { 

     e.printStackTrace(); 
    } 

} 
1
I suggest you to use Scanner class which is present in java.util package so you import this package in our program. 

Scanner a = new Scanner(System.in); 

Here Scanner is the class name, a is the name of object, new keyword is used to allocate the memory and System.in is the input stream. Following methods of Scanner class are used in the program below :- 
1) nextInt to input an integer 
2) nextFloat to input a float 
3) nextLine to input a string 

in your case you can use string (nextLine) 

ваш код должен выглядеть примерно так это имя файла

ListReferenceBased stack = new ListReferenceBased(); 
int exception=0; 
// add the following code 
    String fileName; 
    Scanner in = new Scanner(System.in); 
    System.out.println("Enter the file name in .txt"); 
    fileName = in.nextLine(); 


File f=new File(fileName);  

FileReader fr = null; 
try { 
    fr = new FileReader(f); 
} catch (FileNotFoundException e) { 

    e.printStackTrace(); 
} 
Смежные вопросы