我正在尝试对用户是否在命令行中输入(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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
在命令行中,我输入:java RemoveDuplicates example.txt,我得到了重复,"不应该发生." 我也试过java RemoveDuplicates"example.txt",但这也不起作用.所以我想知道我的代码是否错误,或者我如何将它传递到命令行对于初学者来说是错误的.
其次,如何传入目录名称?就像你的目录是myDirectory一样,是不是同样的事情:java RemoveDuplicates myDirectory
第三,为什么如果我将我的文件f =新文件(args [0])放入try块并有一个catch块,我得到一个编译错误,我的try块中的内容永远不会引发异常.我以为File抛出异常?提前致谢!
您确定 example.txt 存在于您的工作目录中吗?尝试添加以下内容,看看会发生什么。
File f = new File(args[0]);
if (!f.exists()) {
System.out.println("does not exist");
}
Run Code Online (Sandbox Code Playgroud)
你有这个权利。
事实上,我没有得到这个错误。你是如何进行尝试/捕获的?