
第2回 EclipseでJavaの入出力を理解する
小山博史
2006/4/21
今回は、ユーザーからの入力を受け取って、その値を使って計算をするプログラムを作成する方法について解説します。プログラムを対話的に実行する方法の1つに、コンソール画面を使ったユーザーインターフェイスを用意する方法があります。これをJavaで実現するには入出力用クラスライブラリ(java.ioパッケージ)に含まれるクラスを使います。今回は、この基本クラスの使い方を理解しましょう(ここで「パッケージ」という言葉が登場しましたが、パッケージについては「Eclipseではじめるプログラミング 第11回 Javaのパッケージを理解する」を参照して理解してください)。
New I/O API(java.nioパッケージ)という、java.io パッケージの入出力機能を補足するクラスライブラリもありますが、こちらはjava.ioパッケージについて理解してから使えるようになればよいでしょう。
|
コンピュータに用意された入出力の機能 |
早速java.ioパッケージについて解説をしたいところですが、その前に基本事項を押さえておきましょう。
コンピュータシステムのハードウェアは、制御装置、演算装置、記憶装置、入力装置、出力装置といった5つの基本要素から構成されています。このうち、よく使用する標準的な入力装置、出力装置については簡単に扱えるような仕組みがOSにより提供されています。一般的なパーソナルコンピュータのOSではこれらの装置を抽象化して、標準入力、標準出力と呼んで、プログラムから統一的に扱えるようにしています。
こういった仕組みがあるため、キーボードから入力されたデータをプログラムで受け取るためには、標準入力からデータを読み取るようにコーディングをすればよく、プログラムの計算結果をディスプレイへ出力するためには、標準出力へデータを書き出すようにコーディングをすればよいのです。
![]() |
| 図1 コンピュータシステムの基本要素 |
ここで、プログラムが計算結果を出力するには、標準出力だけあればよいのですが、エラーが発生した場合にもそれをどこかへ出力する必要があります。大抵、どちらもディスプレイへ表示することになるのですが、計算結果とエラー出力を分けることができないと困ってしまいます。このため、標準エラー出力というものが、標準出力とは別に用意されています。ただし、通常はどちらもディスプレイへ表示するように設定されています。
![]() |
| 図2 標準入力、標準出力、標準エラー出力 |
これらの標準入力、標準出力、標準エラー出力を使えるように、Javaではjava.lang.Systemクラスにin、out、errというフィールドを用意しています。Java APIドキュメントによると、フィールドinはjava.io.InputStream型で、フィールドoutとerrはjava.io.PrintStream型になります。今回はjava.lang.Systemのinフィールドとoutフィールドの使い方について理解することにしましょう。
ところでAPIリファレンスによると、「標準エラー出力」ストリーム、「標準入力」ストリームのように、ストリーム(stream)という用語が出てきています。このストリーム(stream)とは「川の流れ、液体・気体などの一定の流れ」という意味です。入出力されるデータというのは「川の流れ」のように流れていくので、この用語が使われています。
もう少し説明をすると、例えばキーボードから[A][B][C][D]とキーを押下して文字データを入力したとします。すると画面上には「ABCD」が表示されます。次に「D」を消すために[BS(Back Space)]キーを押下して制御データを入力します。これで画面上では「ABC」となるのですが、入力したデータを取り消したことにはなりません。この場合、[A][B][C][D][BS(Back Space)]というデータが入力されたということになります。つまり、キーボードからデータを入力したということを取り消すことはできず、データは次々と流れていってしまうのです。
![]() |
| 図3 ストリーム |
| 1/4 |
INDEX |
||
第2回 EclipseでJavaの入出力を理解する |
||
| Page1 コンピュータに用意された入出力の機能 |
||
| Page2 ユーザー入力に対応するプログラム |
||
| Page3 サンプルプログラム |
||
| Page4 書式付の入出力 |
||
EclipseでJavaに強くなる バックナンバー
| Java Solution全記事一覧 |
TechTargetジャパン
- 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



