这是一个基本的脚本,在这里输入一个文件作为参数之一,并根据它的扩展名用不同的程序执行它。这不是完整的代码这只是给我一个错误的代码:
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的初学者
1条答案
按热度按时间sycxhyv71#
你会踢自己…:-)
要创建文件对象,只需调用其构造函数,例如。
File("/path/to/myFile")
. (其他构造函数允许您分别指定目录和文件名或uri。)文件是文件名的抽象表示;它可以是绝对的(从
/
或者不管文件系统的根是什么),或者相对于(当前目录)。 文件甚至不需要存在。当然,如果不是这样,那么在下面的一行中尝试为它创建读取器时会出现错误。 (我敢肯定,当您将i/o错误转换为生产代码时,您将处理这些错误!)
kotlin提供了其他读取文件的方法;看看像file.uselines、file.readlines和file.foreachline这样的扩展函数,它们使它变得更加简单。