1. 序章

新しいプログラミング言語を学ぶときは、コンソールI/Oから始めるのが一般的です。 このチュートリアルでは、KotlinでコンソールI/Oを処理するためのいくつかの代替案について説明します。

2. Kotlin標準ライブラリの使用

Kotlin標準ライブラリは、JDKの組み込みサポートに基づいてI/Oを処理するための拡張機能を提供します。

コンソールに印刷するには、印刷機能を使用できます。 次のスニペットを実行すると、次のようになります。

print("Hello from Kotlin")

端末に次のメッセージが表示されます。

Hello from Kotlin

舞台裏では、この関数はJavaのSystem.out.printメソッドを使用します。 また、ライブラリは、メッセージの最後に行区切り文字を追加するprintln代替関数を提供します。

コンソールから読み取るために、readLine関数を使用できます。

val inputText = readLine()

興味深いことに、 これは、PrintがSystem.out.printの場合のように、Scanner.readLineの同義語ではありません。 今どこを見てみましょうスキャナーしかし、入ってくる。

3. Java標準ライブラリの使用

KotlinはJavaとの優れた相互運用性を備えています。 したがって、必要に応じて、プログラムでJDKの標準I/Oクラスを使用できます。

ここでそれらのいくつかを調べてみましょう。

3.1. スキャナークラスの使用

Scannerクラスの使用は非常に簡単です。 インスタンスを作成し、nextLineメソッドを使用するだけです。

val scanner = Scanner(System.`in`)
val readText = scanner.nextLine()

in プロパティはKotlinのキーワードであるため、バッククォートを使用してエスケープしていることに注意してください。

3.2. BufferedReaderクラスの使用

BufferedReader クラスを使用して標準の入力ストリームから読み取るには、最初にSystem.inでインスタンス化する必要があります。

val reader = BufferedReader(InputStreamReader(System.`in`))

次に、そのメソッドを使用できます。たとえば、 readLine()

val readText = reader.readLine()

3.3. コンソールクラスの使用

前の2つのクラスとは異なり、 Console クラスには、readPasswordprintfなど、コンソールI/Oを処理するための追加のメソッドがあります。

Console クラスを使用するには、Systemクラスからインスタンスを取得する必要があります。

val console = System.console()

これで、特に readLine()メソッドを使用できます。

val readText = console.readLine()

4. 結論

このチュートリアルでは、KotlinでのI / Oの処理の概要と、JDKの同等のクラスの使用方法を説明しました。 これらのJDKクラスの詳細については、Scanner、BufferedReader、およびConsoleに関するチュートリアルを確認してください。

また、KotlinのJavaとの相互運用性のおかげで、I/Oを処理するために追加のJavaライブラリを使用できます。

いつものように、この記事に示されているすべてのコードサンプルは、GitHubから入手できます。