获取FileInputStream使用的文件

时间:2016-11-20 05:17:48

标签: java file file-io fileinputstream

是否有可能获得false使用的FileFileInputStream似乎没有任何方法可以检索它。

1 个答案:

答案 0 :(得分:1)

FileInputStream API中没有直接方法,但如果您真的想要,可以使用java反射API获取path(实际文件名为完整路径),如下所示:

FileInputStream fis = new FileInputStream(inputFile);
Field field = fis.getClass().getDeclaredField("path");
field.setAccessible(true);
String path  = (String)field.get(fis);
System.out.println(path);

path变量(保存带路径的文件名)在FileInputStream类中声明为私有最终字段,我们使用反射代码获取它,如上所示。

PS: 您需要注意,无法保证上述方法能够在所有JVM实现中实现结果,因为它未在规范中定义。