尝试从相对路径读取文件时,获取“ java.io.IOException:流已关闭”

Koushik J:

我正在尝试读取yaml文件。起初我有绝对的道路,它运转良好。现在,当我将战争文件部署在服务器中时,我想将绝对路径更改为相对路径。从那时起,它给出了错误。码:

    Yaml yaml = new Yaml();
    InputStream inputStream = getClass().getResourceAsStream("src/main/resources/config/jobnames.yml");
    HashMap yamlMap = yaml.load(inputStream);

异常堆栈:

org.yaml.snakeyaml.error.YAMLException: java.io.IOException: Stream closed
org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:218)
org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:176)
org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:171)
org.yaml.snakeyaml.reader.StreamReader.peek(StreamReader.java:126)
org.yaml.snakeyaml.scanner.ScannerImpl.scanToNextToken(ScannerImpl.java:1177)
org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:287)
org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)
org.yaml.snakeyaml.parser.ParserImpl$ParseImplicitDocumentStart.produce(ParserImpl.java:195)
org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:107)
org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:141)
org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:525)
org.yaml.snakeyaml.Yaml.load(Yaml.java:453)

请帮我解决什么问题?谢谢

塔努吉:

由于您正在使用ClassLoader,因此路径应该是相对路径,而不是绝对路径,就像resources在classpath上直接可用的路径一样(代码中也缺少ClassLoader)

您可以尝试使用此方法,而不使用绝对路径吗?

Yaml yaml = new Yaml();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config/jobnames.yml");
HashMap yamlMap = yaml.load(inputStream);

这应该够了吧!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spark:将流写入文件/ XXX / stderr java.io.IOException时出错:流已关闭

读取ZipEntry内部的字符串:java.io.IOException:流已关闭

java.io.IOException:尝试从关闭的流读取

java.io.IOException:尝试从JAR访问XML文件时,流关闭

java.io.IOException:流关闭

java.io.IOException:流关闭ZipInputStream

java.io.IOException:流已关闭,但仅当从jar运行时

JAXB:unmarshalexception-具有链接的异常:[java.io.IOException:流已关闭]

如何从Java项目中的相对路径读取文件?java.io.File找不到指定的路径

I /在读取输入消息O错误; 嵌套的例外是产生java.io.IOException:流关闭

从相对路径读取XML-java.io.FileNotFoundException :(系统找不到指定的路径)

SQOOP-password-file选项关闭导致java.io.IOException的文件系统引用:文件系统已关闭

java.io.IOException:用 awt 关闭的流

java.io.IOException:流关闭(从groovy开始)

为什么我得到java.io.IOException:流关闭?

如何删除java.io.IOException:流关闭?

如何解决:java.io.IOException:流关闭

Spring Reactive:java.io.IOException:当我关闭连接时,主机中的软件中止了已建立的连接

转换结果java.io.IOException时出错:尝试在关闭的流上读取。安卓

Java 无法获取文件的相对路径

为什么会出现java.io.IOException:流关闭?(java 7)

java.io.IOException:流关闭或底层输入流返回零字节,同时从request.getInputStream()中读取字符

Java io流关闭错误

流关闭的IO异常Java

java IO异常:流关闭

我该如何解决?java.io.IOException:流关闭

无法关闭“ finally”子句中的流(未初始化变量/未处理的IOException [Java IO])

org.glassfish.jersey.server.ContainerException:java.io.IOException:流关闭

java.io.IOException:流关闭-在Tomcat 8上-JavaMelody-JAX WS