skillup

技術ブログ

Java

入出力操作

投稿日:2015年3月26日 更新日:

Javaの出力処理について書きます。

下記リンクが非常に詳しかったので、これをもとにまとめてみたんですが、咀嚼できてないっぽい・・・・ もう1~2度修正がひつようかも。

Javaのファイル入出力の基本概念

入出力の種類

Javaだけに限りませんが、プログラムの入出力操作というのは大きく分けると、

  • 標準入力・出力(コマンドラインから)
  • ファイル入出力

に分けられるかと思います。この2つの処理についてみていきます。

ストリーム

Javaでは行き先を持ったデータのことをストリームと呼びます。例としては、キーボード→ファイルへの保存や逆にファイル→標準出力などです。そしてJavaでは文字列の操作を行う文字ストリームと画像などのバイナリデータのバイトストリームに分かれます。

変換処理

そのため画像などのバイナリデータはデータの変換処理が必要になってきます。また文字列であっても日本語を扱う場合、文字コード変換を行わないと文字化けのリスクがあります。そのため文字コードなどの変換処理をともなうことが一般的です。

バッファとは

バッファとは緩衝材という意味ですが、Javaの場合、データの入出力元とコンピューターの間に存在する記憶領域を指します。一般的にファイルの入出力(ディスクへのアクセス)というのは時間がかかりますのでスピードや付加を考えるとできるだけ少ないことが望ましいのです。

この回数を減らすために、ディスクと入出力の間にバッファという領域を作りここである程度の領域が使用されたらディスクにアクセスすようにします。こうすることでディスクへのアクセスする回数を減らすことができます。

処理イメージ

基本的な概念がわかったところで実際の処理、コーディングの説明をしたいと思います。

実際のJavaの入出力操作では

  1. 入出力元からの受付
  2. ストリームの変換処理
  3. バッファの使用

と考えると流れがスムーズかと思います。(バッファは使わなくても問題ありませんが実務上はほぼ使うものと思って問題ありません。)

それぞれ下記のようなクラスを使います。

入出力元からの受付処理

標準

ファイル

入力  

バイナリ形式

文字データ

出力

バイナリ形式

文字データ

変換処理

入力 

コンストラクタ

出力 

コンストラクタ

バッファの使用

入力 

コンストラクタ

メソッド

出力

コンストラクタ

実践的なコーディング

入力(ファイルの読み込み)

入力(コマンドラインからの入力)※空白実行時に停止します。

出力(ファイルへの出力)

コマンドラインの出力は System.out.print でそのまま出力すればOKです。

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Git→Jenkinsの連携 その2

以前、このエントリーでGitとjenkinsの連携に関して書いたんですが、今回jenkinsとgitのソースが別環境にあるケースの構築をしたのでメモしておきます。 Contents1 Jenkinsで …

no image

ApacheCommonsのライブラリ

先日のエントリーでBeanUtilsが非常に使えるという話をしたのですが、それ以外にもApacheCommonsのライブラリには使えるものがかなりあります。 かなりあります、というかなぜ今まで使ってな …

no image

依存関係エラー

JavaEEで新PCでビルドしたらいきなりエラー。同一のソースを別PCで動かすと正常に立ち上がります。 こんな場合、GlassFishの設定がおかしいか、ライブラリの依存関係に問題があることがほとんど …

no image

jenkins構築

いままでjenkinsについての記事を書いていなかったので記録しておこうと思います。 Contents1 前提条件2 jenkins構築3 設定ファイル変更(ポート&URL変更)4 セキュリティ有効化 …

no image

Fileのアップロード

業務でCSVのアップロードを行っていますが、ファイルになりますと当然文字列ではなく、バイナリ形式のデータが必要になります。 アップロード自体の処理を書いていなかったので、その扱い方についてちょっと書い …