📜  Kotlin 标准输入输出(1)

📅  最后修改于: 2023-12-03 15:02:32.777000             🧑  作者: Mango

Kotlin 标准输入输出

Kotlin 是一种功能强大的静态类型编程语言,它以其简洁性、安全性、可靠性和互操作性而闻名。Kotlin 通过使用标准输入输出(Standard Input and Output,简称为 STDIN 和 STDOUT)来实现输入和输出。在本文中,我们将探讨 Kotlin 标准输入输出的方法和用法。

入门

Kotlin 的标准输入输出可以使用 readLine()println() 方法实现。其中,readLine() 方法用于从输入流中读取字符串,println() 方法用于将字符串输出到输出流中。这些方法可以在 Kotlin 的 REPL 环境或编写的 Scala 源代码中使用。

下面是一个简单的 Kotlin 应用程序示例:

import java.util.Scanner

fun main() {
    val stdin = Scanner(System.`in`)
    val a = stdin.nextInt()
    val b = stdin.nextInt()
    println("$a + $b = ${a + b}")
}

该程序从标准输入读取两个整数,并将它们相加输出到标准输出。运行该程序后,它将显示如下输出:

1
2
1 + 2 = 3

在这个例子程序中,我们使用了 Scanner 类来读取标准输入,并使用字符串插值将相加的结果插入到输出字符串中。

使用 BufferReader 和 PrintWriter 读写输入和输出流

除了使用 Scanner 类外,我们还可以使用 BufferReaderPrintWriter 类来处理标准输入和输出。这两个类提供了比 Scanner 更加灵活的API。下面是一个使用 BufferReaderPrintWriter 的 Kotlin 示例代码:

import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.PrintWriter

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val pw = PrintWriter(System.out)
    val a = br.readLine()
    val b = br.readLine()
    pw.println("$a + $b = ${a.toInt() + b.toInt()}")
    pw.flush()
}

在这个 Kotlin 程序中,我们使用 BufferReaderPrintWriter 类的 readLine()println() 方法来实现标准输入和输出。由于 readLine() 方法返回的是字符串类型的读取结果,我们需要将其转换为整数类型,而将字符串转换为整数则可以使用 toInt() 方法。

使用 Kotlin 的 stdin 和 stdout 对象读写输入和输出

Kotlin 还提供了一种更方便的方式来访问标准输入和输出流,即使用 stdinstdout 对象。stdin 对象是 System.in.bufferedReader(), 而 stdout 对象是 System.out.bufferedWriter()。下面是一个使用 stdinstdout 对象的 Kotlin 示例代码:

import java.io.BufferedWriter
import java.io.OutputStreamWriter

fun main() {
    val a = readLine()!!.toInt()
    val b = readLine()!!.toInt()
    val out = BufferedWriter(OutputStreamWriter(System.out))
    out.write("$a + $b = ${a + b}")
    out.newLine()
    out.flush()
}

该程序从标准输入读取两个整数,并将它们相加输出到标准输出。与使用 Scanner 类的示例程序相似,我们也使用了字符串插值将相加的结果插入输出字符串中。不同之处在于我们使用了 readLine()!! 来直接读取标准输入,并使用 BufferedWriter 类来处理标准输出。

总结

在 Kotlin 中,我们可以使用多种方式来实现标准输入和输出,包括 Scanner 类、BufferReaderPrintWriter 类以及 stdinstdout 对象。无论是哪种方法,都可以让我们轻松快捷地从标准输入读取数据,并将计算结果输出到标准输出。要注意为了避免空指针异常,我们在读取标准输入时应该使用非空断言符号 !! 来告诉 Kotlin 编译器我们确信该值不为空。