はじめに
Javaの学習を進めていると、プログラムに**「入力」を受け取る方法**に悩むことがありますよね。そんなときに登場するのが Scanner(スキャナー)クラス です。
Scannerを使えば、キーボードからの入力やファイルの読み込みがとても簡単になります。
この記事では、Java初心者の方に向けて、Scannerクラスの基本から応用までやさしく解説します。
1. Scannerとは?
Javaでの「入力」を楽にするツール
Javaには、Scannerという便利なクラスが用意されています。これは、ユーザーのキーボードからの入力やファイルの中身を簡単に読み取るためのツールです。
Scannerは、java.utilパッケージに含まれているので、使うときには最初に以下のように書きます:
import java.util.Scanner;
2. キーボード入力の基本ステップ
まずは、ユーザーからキーボードで入力を受け取る方法から学びましょう。
例:名前を入力して表示するプログラム
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // スキャナを作成
System.out.print("あなたの名前を入力してください:");
String name = scanner.nextLine(); // 一行読み取り
System.out.println("こんにちは、" + name + "さん!");
scanner.close(); // 最後は忘れずに閉じよう
}
}
3. データ型ごとの読み取りメソッド
Scannerでは、読み取るデータの種類に応じて、いろいろなメソッドが用意されています。
| メソッド | 意味 | 使用例 |
|---|---|---|
next() | 単語を読み取る(空白まで) | 名前など |
nextLine() | 一行まるごと | コメント入力など |
nextInt() | 整数 | 年齢など |
nextDouble() | 小数 | 価格など |
nextBoolean() | true/false | 確認など |
使用例
System.out.print("年齢を入力してください:");
int age = scanner.nextInt();
System.out.println("あなたは " + age + " 歳です。");
4. 入力エラー(例外)への対処
Scannerで数字を入力するつもりが文字を入れてしまうと、**InputMismatchException**というエラーになります。
例外処理の例
try {
System.out.print("年齢を入力してください:");
int age = scanner.nextInt();
System.out.println("あなたは " + age + " 歳です。");
} catch (Exception e) {
System.out.println("整数を入力してください!");
}
5. ファイル読み込みにも使える!
Scannerは、ファイルの中身を読み込むこともできます。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FileReaderExample {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("sample.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
}
}
6. Scannerのクローズとリソース管理
Scannerを使い終えたら、close()で閉じるのが基本ルールです。忘れると、メモリリークの原因になることも。
安全な書き方:try-with-resources
try (Scanner scanner = new Scanner(System.in)) {
// ここで使用する
}
try(...)の中で作成したオブジェクトは、自動的にcloseされるので安心です。
7. 注意点・よくあるミス
nextInt() の後の nextLine() がうまく動かない!
System.out.print("年齢を入力:");
int age = scanner.nextInt(); // ここで数値だけ読む
System.out.print("コメントを入力:");
String comment = scanner.nextLine(); // ←実行されない!
これは、nextInt()が読み込んだあとの「Enterキー」の改行がそのまま残ってしまうからです。
解決法
scanner.nextLine(); // 改行だけ捨てる
String comment = scanner.nextLine(); // 本来の入力
8. 実践コード例集
① 名前と年齢を聞くプログラム
Scanner scanner = new Scanner(System.in);
System.out.print("名前を入力:");
String name = scanner.nextLine();
System.out.print("年齢を入力:");
int age = scanner.nextInt();
System.out.println(name + "さんは " + age + " 歳ですね。");
scanner.close();
② ファイルからCSV読み込み(1行ずつ)
Scanner scanner = new Scanner(new File("data.csv"));
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] values = line.split(",");
System.out.println("名前:" + values[0] + " 年齢:" + values[1]);
}
scanner.close();
9. 学習の進め方と次のステップ
Scannerを使えるようになると、Javaでの対話的なプログラムが書けるようになります。
- 入力を受けて処理する
- ファイルからデータを読む
この2つができれば、実用的なアプリ開発の第一歩です!
まずは「絶対にJavaプログラマーになりたい人へ。」を読んでScannerの基本を身につけましょう。
もっと学びたい方、コードレビューや転職サポートを受けたい方は「サイゼントアカデミー」をぜひ活用してください!
まとめ
- Scannerはキーボードやファイルからの入力に使う
nextInt()やnextLine()の違いに注意- 使い終わったら
close()するのを忘れずに - 例外処理やエラー対応も習慣化しよう!

をやさしく解説!-120x68.png)
コメント