【Java入門】標準入力を取得、出力する方法(Scannerを解説)

こんにちは!フリーランスの長野です。Javaで標準入力って使っていますか?

標準入力とはキーボードで文字列などを入力することです。この記事では、標準入力について

  • 標準入力、標準出力とは?
  • Scannerの使い方
  • InputStreamReaderの使い方

といったように、基本的な内容から応用的な内容についても解説していきます。今回は標準入力について、わかりやすく解説します。

標準入力、標準出力とは?

標準入力とは、わかりやすく言うと「キーボードからの入力」を指します。主にコンソールアプリケーションでキーボードから入力した内容を、プログラムがデータとして受け取って処理を実行します。

これに対して標準出力とは、プログラムからデータを表示するための装置のことで一般にディスプレイに表示することを言います。Javaでは入出力関連のクラスは、java.ioパッケージにまとめられています。

標準入力

JavaではSystemクラスのinフィールドで標準入力を取得します。System.inの型はInputStream型です。

これはバイトストリームでの読み込みを行うメソッドしか持たないので、ScannerクラスやInputStreamReaderクラスのオブジェクトに変換して文字列で取得できるようにします。この記事ではScannerクラスやInputStreamReaderクラスについて解説します!

標準出力

一方、標準出力ではSystemクラスのoutフィールドを使います。System.outの型はPrintStream型です。

PrintStreamクラスにはprintlnメソッドやprintメソッド、printfメソッドなどが用意されています。おなじみのprintlnメソッドは出力後に改行します。printメソッドは出力後に改行しません。printfメソッドはC言語のようにフォーマットを指定して出力します。

Scannerの使い方

java.util.Scannerクラスには、一行分の入力を取得するnextLineメソッドや空白文字までの入力を取得するnextメソッド、数値の入力を取得するnextIntメソッドなどが用意されています。それぞれの使い方について確認していきましょう。

nextLineで行入力を取得

nextLineメソッドを使うと、改行までの一行分の入力を取得することができます。

実行結果:

「Hello Java!」と入力した結果が表示されています。

nextで空白文字までを取得

nextメソッドを使うと空白文字までの入力を取得することができます。

実行結果:

「samurai engineer」と入力した結果が表示されています。

nextIntで数値を取得

nextIntメソッドを使うとint型の数値を取得することができます。浮動小数点数型の数値を取得するnextDoubleメソッドやnextFloatメソッドなどもあります。

実行結果:

「2 3」と入力した結果が表示されています。

InputStreamReaderの使い方

InputStreamReaderクラスを使っても入力文字列を取得することができます。ただ、InputStreamReaderクラスには一文字ごとに読み込むreadメソッドしか用意されていません。

一文字ごとに読み込むのは効率が悪いので、BufferedReaderクラスのオブジェクトに変換して一行まとめて読み込む方法が一般的です。BufferedReaderクラスのreadLineメソッドを使って一行ごとに読み込みます。

サンプルコードで確認しましょう。

実行結果:

まとめ

ここでは標準入力について説明しました。JavaではScannerクラスやInputStreamReaderクラスを使って文字列に変換してから入力を取得する必要があります。

使いこなすことができるように、この記事を何度も参考にして下さいね!

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java2
LINEで送る
Pocket

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説