Kotlin 2.0 - Lesen einer Datei

Ich habe gerade ein sehr rudimentäres Kotlin (2.0) Problem (Gradle Build scheint so weit zu laufen?)

fun readFileAsLinesUsingUseLines(fileName: String): List<String> = File(fileName).useLines { it.toList() }
  1. Problem: Meine IDE (IntelliJ) liefert mir hier keinen Vorschlag für „File“ o.ä.
  2. Problem:
    In Java würde ich folgendes machen:
  public static String getContent(Path file) {
    try (var read = Files.newBufferedReader(file)) {
      return read.readLine();
    } catch (IOException e) {
      throw new IllegalStateException(e);
    }
  }

Gibt es einen „besseren“ Weg in Kotlin? Weill ja File ja java.io.File gezogen wird … was nicht mehr aus java.nio.file.* kommt?

könnte es daran liegen dass du eigentlich Files suchst :wink:

fun readFileAsLinesUsingUseLines(fileName: String): List<String> = Files.readAllLines(Path.of(fileName))

Erstmal Danke für Deine Antwort…
Nein es lag zuerst einmal nicht daran, dass ich Files suchte (zumindest nicht für den Ersten Schritt)… Das Erste Problem war, dass die Code-Completion in IntelliJ nicht ging. Damit ist klar, dass der Gradle Build noch nicht Ok ist…aktuell läuft es gerade mit Maven…

Jetzt habe ich mal die Beispiele so aufgebaut, nur um mal zu probieren wie das geht:

fun readFileUsingBufferedReader(fileName : Path) : String = Files.newBufferedReader(fileName).use { it.readLine() }

fun readFileUsingFileUseLines(fileName: String): List<String> = File(fileName).useLines { it.toList() }

fun readFileUsingReadString(fileName: Path): String = Files.readString(fileName)

Nachdem das mit dem Code-completion jetzt geht… dann klar mit Files… Ich gehe mal davon aus, dass das auch in Kotlin DER Weg ist…

Muss ich mal schauen was bei Gradle noch das Problem ist…