[英]Alternative to java.nio.file.Path in Java6 for OS File system Flexibility
我正在將代碼反向移植到Java SE6,並且希望對我的代碼進行OS不可知文件檢索。 我已經在SE7上有一個很好的代碼。
這就是我在Java SE7上使用它的方式。
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
並將找到。
有沒有像在Java SE6中使用java.nio.file.Path
一樣容易的替代方法?
如果您只收到一個文件,那么使用此Path concat函數就太過分了。
您可以僅使用new FileInputStream(filename)
。 即使將它們混合使用,它也可以在/
和\\
上正常工作。
而且,關閉打開的輸入流非常重要。 在java7中,可以使用autocloseable函數:
try (InputStream is = new FileInputStream(filename)) {
return getProperties(is);
}
在Java6中,您需要自己關閉它:
InputStream is = new FileInputStream(filename);
try {
return getProperties(is);
} finally {
if (is != null) is.close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.