Lui*_*hil 0 java command-line-arguments
我对Java很新.目前尝试将args []中给出的文件名传递给此FileReader,但是当我编译它时,它说找不到指定的文件.如果我硬编码文件名,它工作正常.这应该是怎么回事?
public class StringSplit
{
public void parseCommands
{
try
{
//not working, why? It works if I do FileReader fr= new FileReader("hi.tpl").
FileReader fr= new FileReader(args);
}
public static void main (String[] args)// args holds the filename to be given to FileReader
{
if (args.length==0)
{
System.out.println("Error: Bad command or filename. Syntax: java [filename.tpl]);
System.exit(0)
}
StringSplit ss= new StringSplit();
ss.parseCommands();
}
}
Run Code Online (Sandbox Code Playgroud)
您只是开始使用伪代码,但从根本上说,您需要了解Java中不同类型的变量.
argsin main是一个参数 - 它是该方法的本地参数.如果您希望其他方法能够使用其值,则需要将该值存储在共享变量(例如静态变量或实例变量)中,或者需要将其作为参数传递给需要它的方法.
例如:
public class StringSplit
{
public void parseCommands(String[] files)
{
try
{
FileReader fr= new FileReader(files[0]);
}
// Rest of code
}
public static void main (String[] args)
{
if (args.length==0)
{
System.out.println("...");
System.exit(0)
}
StringSplit ss= new StringSplit();
ss.parseCommands(args);
}
}
Run Code Online (Sandbox Code Playgroud)
(目前你也可以创建parseCommands一个静态方法,然后在不创建实例的情况下调用它StringSplit,顺便说一句...)