为什么以下内容未读取war-and-peace.txt
文件夹中的resources
文件?
我项目中的文件夹结构是Intellij创建的标准Scala结构。
出于某种原因,当我把它放在src/main/scala
(即我的Scala代码所在的位置)时它只读取这个文件,但是当我把它放在src/main/resources
中时忽略了这个文件。我得到的问题java.lang.NullPointerException
,顺便说一句,当我试图阅读"/war-and-peace.txt"
(带有前面的斜线)时,我也会得到同样的例外,如果你想提出建议的话。)
val file = new File(classLoader.getResource("war-and-peace.txt").getFile())
Source.fromFile(file).....
我正在使用
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
build.sbt:
name := "my-project"
version := "1.0"
scalaVersion := "2.11.8"
resourceDirectory in Compile := baseDirectory.value / "resources"
libraryDependencies += "junit" % "junit" % "4.12"
libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.4"
答案 0 :(得分:2)
使用getClass
而非classLoader
并将/
放在资源名称/war-and-peace.txt
的前面。 war-and-peace.txt
文件必须位于资源文件夹(src / main / resources)。
val file = getClass.getResource("/war-and-peace.txt").getFile()
Source.fromFile(file).getLines.foreach(println)
在一行
Source.fromFile(getClass.getResource("/war-and-peace.txt").getFile).getLines().foreach(println)
getClass.getResourceAsStream 更可靠,因为当代码打包在一个jar文件中时也能正常工作
Source.fromInputStream(getClass.getResourceAsStream("/war-and-peace.txt")).getLines().foreach(println)
答案 1 :(得分:-1)
通过将 var b = (Random().nextInt(99) + 1);
var operate = getOperator();
var result;
@override
void initState(){
result = calculate(a,operate,b);
super.initState();
}
放在<?php $user = $_GET['user'];
if (in_array($_GET['user'], ['User1', 'User2']))
{
}else
{
echo "You are not in the list";
die;
}
?>
中并运行测试用例,可以获得输出。
println(Source.fromResource(“ dummy.txt”)。getLines.length)