Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从jar和docker opt目录中读取txt文件_Java_Docker - Fatal编程技术网

Java 如何从jar和docker opt目录中读取txt文件

Java 如何从jar和docker opt目录中读取txt文件,java,docker,Java,Docker,我需要编写函数,它不仅可以处理像resource/config/file.txt这样的jar文件,还可以处理位于opt docker目录中的文件。 我有第一个案例,txt文件位于jar中 try (InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("resource/config/file")) { if (inputStream == null) {

我需要编写函数,它不仅可以处理像resource/config/file.txt这样的jar文件,还可以处理位于opt docker目录中的文件。 我有第一个案例,txt文件位于jar中

 try (InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("resource/config/file")) {
        if (inputStream == null) {
            throw new FileNotFoundException("can't find configuration file");
        }
它是工作的,但是如果我尝试放置/opt/docker/conf,它就不工作了

我有第二种情况,txt文件位于docker opt目录中

try (Reader reader = new FileReader("/opt/docker/conf"))
它的工作


有没有办法将这两种情况结合起来?

当然可以。如果第一种方法给您一个空的输入流,您将尝试检查该文件系统路径是否有效。所以:是的,有几种方法可以组合两段代码。真正的问题是:是什么阻止了你自己处理这个问题?第一种情况是在jar外找不到txt文件,第二种情况是在jar内找不到txt文件),所以我想找到可以将这两种功能结合起来的对象,按照您喜欢的顺序,它们是否有效?或者你是在问如何创建一个既能与InputStream一起工作又能与Reader一起工作的接口?我可以写这个方法,是的,我是在问如何为这两种情况创建公共接口。java真的没有吗?