io是java的替代品。尼奥。文件Java6中的路径实现了操作系统文件系统的灵活性
我正在将一个代码向后移植到JavaSE6,我希望为我的代码提供一个操作系统无关的文件检索。我已经在SE7上有了一个非常有效的代码
这就是我在JavaSE7上使用它的方式
protected Properties getPropertiesFromFileSystemPath(final String filename) throws IOException {
if (filename != null) {
Path p = FileSystems.getDefault().getPath("");
final InputStream inputStream = new FileInputStream(p.resolve(filename).toFile());
return getProperties(inputStream);
} else {
throw new IOException();
}
}
有了这段代码,我可以指向一个文件foo\bar\file.txt
或foo/bar/file.txt
,并将被找到
有没有像在JavaSE6中使用java.nio.file.Path
一样简单的替代方法
# 1 楼答案
如果你收到的是一个文件,那么使用这个Path concat函数就太过分了
你可以简单地使用
new FileInputStream(filename)
。它在/
和\
上都能正常工作,即使你把它们弄混了关闭打开的输入流非常重要。在java7中,可以使用自动关闭功能:
在Java6中,您需要自己关闭它: