skillup

技術ブログ

Java

入出力操作

投稿日:

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

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

http://www.artista.co.jp/article/13478478.html

http://www.artista.co.jp/article/13478481.html

 

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

入出力の種類

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

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

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

ストリーム

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

変換処理

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

バッファとは

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

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

処理イメージ

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

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

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

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

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

入出力元からの受付処理

標準

入力 System.in()

出力 Syste.out()

 

ファイル

入力  

バイナリ形式

FileInputStream(String filepath)  throws FileNotFoundException

FileInputStream(File fileobj) throws FileNotFoundException

文字データ

FileReader(String filepath) throws FileNotFoundException

FileReader(File fileobj)  throws FileNotFoundException

 

出力

バイナリ形式

FileOutputStream(String filepath) throws FileNotFoundException

FileOutputStream(String filepath, boolean append) throws FileNotFoundException)

apped = trueのときは追加更新(記述しなければ新規作成)

FileOutputStream(File fileobj)  throws FileNotFoundException

文字データ

FileWriter(String filepath) throws FileNotFoundException

FileWriter(String filepath, boolean append) throws FileNotFoundException

FileWriter(File fileobj) throws FileNotFoundException

変換処理

入力 

コンストラクタ

InputStreamReader( InputStream is)

InputStreamReader(InputStreamReader isr, String charSetName)

 

出力 

コンストラクタ

OutputStreamWriter(OutputStream os)

OutputStreamWriter(OutputStream os, String charSetName)

 

バッファの使用

入力 

コンストラクタ

BufferedReader(Reader r)

BufferedReader(Reader r, int bufSize) ※読み込みサイズの指定が可能

メソッド

String readLine() throws IOException

1行分の文字列をかえす。

出力

コンストラクタ

BufferedWriter(Writer w)

BufferedWriter(Buffer w, int bufSize) ※書き込みサイズの指定が可能

 

実践的なコーディング

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

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

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

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

-Java
-

執筆者:


comment

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

関連記事

no image

JSFのメッセージのレンダリング

ManagedBeanとJSFでメッセージのやり取りをする場合、直接メッセージを変数として持たせるよりは、JSFの仕組みを通じてメッセージを出力させたほうが適切です。 Contents1 エラーメッセ …

no image

開発環境と本番での設定ファイル変更

開発と本番で設定ファイル自体(web.xmlなど)はわけると思うのですが、以前はわからず、開発のものと本番のものを手動でわけていました。 Javaでどうやってやるかを調べたところ、pomにかなり便利な …

no image

JSPでのカスタムタグ

前回のインク―ドですが、文字列以上の情報を渡すことはできませんでした。 いろいろ調べたり、上司に聞いてみるとカスタムタグという独自のタグを作る機能があるとのことでさっそく調査。 Contents1 カ …

no image

DBUtils活用 その2

以前DBUtilsの活用を書きましたが、他の使い方がわかったのでメモ 以前はSelectでList<エンティティ>を取得したのですが、List<Map>でも取得できます。 ソー …

no image

文字列変換系処理まとめ

Javaで文字列の変換(全角、半角など)の処理のまとめです。 ブログに記事として書こうと思ったのですが、丸々コピペになってしまうので、それじゃあ元リンクを紹介したほうがいいかなと思い、今日は基本的にリ …