Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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中加载YAML_Java_Java 8_Yaml_Java Stream - Fatal编程技术网

在Java中加载YAML

在Java中加载YAML,java,java-8,yaml,java-stream,Java,Java 8,Yaml,Java Stream,我正在尝试使用以下代码读取Java中的YAML文件: public class LoadFile { public static void main(String[] args) throws IOException { Yaml yaml = new Yaml(); InputStream inputStream = LoadFile.class .getClassLoader() .getResourceAsS

我正在尝试使用以下代码读取Java中的YAML文件:

public class LoadFile {
  public static void main(String[] args) throws IOException {             
      Yaml yaml = new Yaml();
      InputStream inputStream = LoadFile.class
       .getClassLoader()
       .getResourceAsStream("ABSOLUTE PATH TO YAML");
      Object obj = yaml.load(inputStream);
      System.out.println(obj);    
  }
  }
但我得到了这个例外,我不明白为什么会发生

线程“main”org.yaml.snakeyaml.error.YAMLException:java.io.IOException:流关闭中出现异常


问题的原因并不明显,但有一些东西需要检查: 1-确保路径正确 2-确保文件格式正确

旁注:
您可以将对象更改为
映射
,以便更好地进行强制转换

getResourceAsStream是否返回流或null?您的路径几乎肯定是错误的,导致
getResourceAsStream
返回
null
。这真的是您的完整代码吗?我在使用
loadAll
加载多个YAML文档时看到过这种情况,直到输入流关闭后才处理结果。当
loadAll
在try with resources块中并且结果在块外使用时,可能会发生这种情况。这可能也会发生在加载时,虽然在一个简单的测试中,使用一个小的YAML文件,它不会发生。另外,您使用的snakeyaml版本是什么?我在测试中使用了1.26。您不知道YAML文件是否可以加载到
映射中。