当前路径和输入文件

时间:2013-09-06 17:41:29

标签: java file-io command-line

我正在编写一个相当简单的Java程序,我需要用户提供的一些选项使他们能够从文本列表中读取数据进行比较。

我想要做的是让他们能够简单地定义文件,如果它在当前的工作路径中,并假设它,除非他们提供一个单独的路径到他们的文件。我想使用相同的方法在他们定义的任何地方生成输出文件。

所以我首先检查文件是否存在(如果没有定义完整路径则不起作用):

File f1 = new File(inputFile);
        if(f1.exists())
            System.out.println("Exists");
        else if(!f1.exists())
        {
            System.out.println("Cannot find file " + inputFile);
            System.exit(1);
        }

所以我可以使用new File(path/inputFile)创建文件,但我可以相当容易地打破它。

我希望他们能够做以下任何事情:

program.exe -m -1 inputFile.txt outputFile.txt

program.exe -m -1 C:\Users\tmp\Desktop\inputFile.txt outputFile.txt

program.exe -m -1 inputFile.txt C:\outputFile.txt

关于我可能在下一步采取何种建议的任何建议?

1 个答案:

答案 0 :(得分:1)

你可以试试像

这样的东西
String currentUserPath = System.getProperty("user.dir")

获取运行应用程序的当前路径。然后你可以检查用户是否在args [0]上提供了一个完整的路径,例如:

String inputPath = args[0];
inputPath = inputPath.trim().toLowerCase(); // as you are using windows case doesn't matter    
if (!inputPath.startsWith("c:"))
    inputPath = currentUserPath + inputPath;

你可以为outputFile

做类似的事情