ねっとぱんだ-プログラミング勉強ブログ-

Webデザイン、プログラミングの勉強ブログ。

【java】標準入力

標準入力

参考https
//builder.japan.zdnet.com/java/20363416/
http://www.itsenka.com/contents/development/java/standardio.html
標準入力
キーボード入力
標準出力
画面出力
  • 入出力(I/O)機能
  • Javaではすべての入出力がストリームベースになっている

java.io」パッケージにまとめられている。

使用するクラス

  • InputStream
  • PrintStream
  • InputStreamReader
  • BufferedReader
  • IOException
//それぞれ読み込む
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

//下記でも可
import java.io.*;

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class IOpractice {
  public static void main(String args[]) throws IOException{
	  //BufferedReaderをバッファリングの処理をする
	  //InputStreamReaderでバイトストリームを文字ストリームに変換する
	  //
	  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	  System.out.println("入力してください。");
	  //入力できる
	  String s = new String(in.readLine());
	  //入力し値を出力
	  System.out.println("入力値は「" + s + "」です。" );
  }
}

BufferedReader

参考
https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedReader.html
http://e-words.jp/w/%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%83%AA%E3%83%B3%E3%82%B0.html
  • 文字、配列、行をバッファリングすることによって、文字入力ストリームからテキストを効率良く読み込む。
バッファリング buffering
データをやり取りするときに、処理速度や転送速度の差を補うためにデータを専用に設けられた記憶領域一時的に保存しておくこと。
ストリーム stream
参考
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000183.html
  • 一列に並べられ、どちらかの方向に「流れる」データ
  • 文字列等、直線上に並べられたデータが、ひとつずつ取得できる状態になっているもの、もしくはひとつずつ出力することができるもの
  • 具体的な何かを指すわけではなく、並べられたデータに「入出力」の機能が付けば、それはストリームである
  • 「入出力」がなければ、ストリームとはならない
  • 「バイト」の並びを対象とするものと「文字」の並びを対象とするものの二通りのクラスがある
バイトストリーム byte stream
byte型データの入力と出力を行うクラス。
byte型データの並び
配列、ソケット、バイナリーファイル等
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000934.html
byte型
1バイト(8ビット)のサイズの整数値を表現する。
Java の byte 型は符号付き(マイナスの符号)であり、表現できる範囲は -128から127まで
文字型入力ストリーム character-input stream
ストリームの一種。文字ストリームの一種で、入力を行うために使用。
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000929.html
readLine()
String型 テキスト行を読み込む

InputStream

参考
https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html
  • バイト単位での入力ストリーム処理を行う
  • Systemクラスのstaticメンバー変数(in)に用意されている為、InputSystemのインスタンスは作る必要がない。
System.in

InputStreamReader

参考
https://docs.oracle.com/javase/jp/8/docs/api/java/io/InputStreamReader.html
  • バイト・ストリームから文字ストリームへの橋渡しの役目を持つ。
  • バイトを読み込み、指定されたcharsetを使用して文字にデコードする。
  • 効率的な変換を可能にするために、現在の読込みオペレーションを満たすのに必要な量より多くのバイトをベースとなるストリームから先読みする
  • 変換効率を最高にするには、BufferedReaderの内部にInputStreamReaderをラップすること

IOException

参考
https://docs.oracle.com/javase/jp/8/docs/api/java/io/IOException.html
  • なんらかの入出力例外の発生を通知するシグナルを発生させる。
  • 入出力処理の失敗、または割り込みの発生によって生成される例外の汎用クラス