읽을 수 없는 파일에서 자원의 폴더에 Scala

0

질문

내가 노력하는 파일 읽기"my_data.txt"앉아서 나 /src/test/resources/data 폴더에 있습니다.

––– src

  –– main

  –– test

   ––– resources

      ––– data

          ––– my_data.txt

나는 다음과 같은 코드 조각이 그렇게 하도록 요청합니다.

val filename = getClass.getResource("/src/test/resources/data/my_data.txt").getPath

때 나는 컴파일하고,컴파일이 잘 갔다,그러나,실행할 때 시험 덕에,나는 다음과 같은 오류 메시지:

java.lang.NullPointerException
    at (xxxx.scala:128)
    at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
    at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:83)
    at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
    at org.scalatest.Transformer.apply(Transformer.scala:22)
    at org.scalatest.Transformer.apply(Transformer.scala:20)
    at org.scalatest.FunSpecLike$$anon$1.apply(FunSpecLike.scala:454)
    at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
    at org.scalatest.TestSuite.withFixture$(TestSuite.scala:195)
    at org.scalatest.FunSpec.withFixture(FunSpec.scala:1630)
    at org.scalatest.FunSpecLike.invokeWithFixture$1(FunSpecLike.scala:452)
    at org.scalatest.FunSpecLike.$anonfun$runTest$1(FunSpecLike.scala:464)
    at org.scalatest.SuperEngine.runTestImpl(Engine.scala:289)
    at org.scalatest.FunSpecLike.runTest(FunSpecLike.scala:464)
    at org.scalatest.FunSpecLike.runTest$(FunSpecLike.scala:446)


When I try to print the path that I am reading from I got `null` as an output.

다른 시도

위에서 떨어져 나가려고 다음과 같은 코드:

  1. val ss = scala.io.Source.fromResource("/src/test/resources/data/my_data.txt")
  2. ClassLoader.getSystemResource("/src/test/resources/data/my_data.txt").getPath

또한,나는 추가 src/test/resources/data 하는 리소스 POM 파일

마지막으로

언급한 선택이있는 경우 .txt 에 포함되어 있는 컴파일러(이동 MAC)

intellij-idea pom.xml resources
2021-11-21 16:34:50
1

최고의 응답

0

만,저는 이를 사용하여 해결 getAbsolutePath 을 얻을 절대적인 경로입니다. 나는 지적을 test.properties 파일 dataDir. 여기에 무엇을 했는지:

properties.load(getClass.getClassLoader.getResourceAsStream("test.properties"))
testDataDirectory = new File(properties.getProperty("dataDir"))
val file = new File(testDataDirectory.getAbsolutePath +"/data/my_data.txt"

for (line <- Source.fromFile(file).getLines) {
   println(line)
}

이 의미하지 않는 것은 "최고의" 방법으로 할,하지만 경우에 당신은 얼굴을 비슷한 문 위에 내가 무엇을 해결하는 데 사용됩니다.

2021-11-23 17:51:30

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................