无法在 Kotlin 中将字符串解析为文件
Can't parse String to File in Kotlin
这是基本脚本,您可以在其中输入一个文件作为参数之一,并根据它的扩展名使用不同的程序执行它。
这不是完整的代码,这只是给我一个错误的代码:
package com.pavlos.efstathiou.runScript
import java.io.BufferedReader
import java.io.File
import java.util.logging.Level.parse
fun main(args: Array<String>) {
val filename: Any = args[0]
if (args.isEmpty()) println("No arguments provided")
if (args.size > 2) println("Too many arguments provided")
fun read() {
val filenameString = File.parse(filename) // I don't know what function to use to parse the filename String
val reader: BufferedReader = filenameString.bufferedReader()
val inputString = reader.use { it.readText() }
println("Contents of file: $inputString")
}
}
唯一的问题是我无法将函数的参数(字符串)解析为文件名。
抱歉我是 Kotlin 的初学者
你会踢自己的……:-)
创建 File object, you simply call its constructor,例如File("/path/to/myFile")
。 (还有其他构造函数可让您分别指定目录和文件名,或 URI。)
文件是文件名的抽象表示;它可以是绝对的(从 /
或文件系统的根目录开始),也可以是相对的(相对于当前目录)。该文件甚至不需要存在。
当然,如果不是,那么当您尝试在下面的行中为其创建 reader 时,您会收到错误消息。 (当您将其转换为生产代码时,您 将 处理 I/O 错误,我敢肯定!)
Kotlin 提供了其他读取文件的方法;看看像 File.useLines, File.readLines, and File.forEachLine 这样的扩展函数,它使它变得更容易。
这是基本脚本,您可以在其中输入一个文件作为参数之一,并根据它的扩展名使用不同的程序执行它。 这不是完整的代码,这只是给我一个错误的代码:
package com.pavlos.efstathiou.runScript
import java.io.BufferedReader
import java.io.File
import java.util.logging.Level.parse
fun main(args: Array<String>) {
val filename: Any = args[0]
if (args.isEmpty()) println("No arguments provided")
if (args.size > 2) println("Too many arguments provided")
fun read() {
val filenameString = File.parse(filename) // I don't know what function to use to parse the filename String
val reader: BufferedReader = filenameString.bufferedReader()
val inputString = reader.use { it.readText() }
println("Contents of file: $inputString")
}
}
唯一的问题是我无法将函数的参数(字符串)解析为文件名。 抱歉我是 Kotlin 的初学者
你会踢自己的……:-)
创建 File object, you simply call its constructor,例如File("/path/to/myFile")
。 (还有其他构造函数可让您分别指定目录和文件名,或 URI。)
文件是文件名的抽象表示;它可以是绝对的(从 /
或文件系统的根目录开始),也可以是相对的(相对于当前目录)。该文件甚至不需要存在。
当然,如果不是,那么当您尝试在下面的行中为其创建 reader 时,您会收到错误消息。 (当您将其转换为生产代码时,您 将 处理 I/O 错误,我敢肯定!)
Kotlin 提供了其他读取文件的方法;看看像 File.useLines, File.readLines, and File.forEachLine 这样的扩展函数,它使它变得更容易。