这是一个很简单的问题,我确定答案就在那里,而我根本就没有用正确的术语进行搜索。我是Java的新手,使用Java 8,并希望学习如何正确处理它,而不是一起装配它。
应用程序通过命令行接收参数。
$ MyApp /home/user/thefiletheywant.me
我尝试了以下内容:
// Missing Scheme, I know I can just force ("file:" + args[0]) but is that proper?
URI fileIn = new URI(args[0]);
// I've learned this is the same thing as above
URI fileIn = URI.create(args[0]);
我已经看过带字符串的示例,请使用File.Separator进行检查以确认它是" /"如果没有,请更换它,然后简单地粘贴"文件:"在前。再次,这似乎很草率。
如果我每次都确切知道文件的位置,那么URI.create当然可以。但是对于未来的教育,我想知道如何正确处理这个非常简单的场景。请原谅我,如果在我的搜索中,我只是错过了我怀疑是一个简单的解决方案。
答案 0 :(得分:0)
你可以在java中创建一个独立于操作系统的File对象(例如Windows使用反斜杠),检查它是否存在,并使用方便的toURI()
方法创建一个有效的URI对象
File myFile = new File(args[0]);
URI fileUri = null;
if(myFile.exists()) {
fileUri = myFile.toURI();
}