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

依存関係エラー

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

no image

Fileオブジェクトの操作

業務でテキストファイルを読み込んで、別形式に変換して出力みたいなアプリを作ったときにファイルオブジェクトについていろいろ調べたんでまとめておきます。 Contents1 ファイルオブジェクトとは?2 …

no image

Javaでのログ出力 基礎編

Javaでのログ出力についてようわかってなかったので基礎から調べました。 Contents1 目的2 設定3 ソース4 出力5 リンク 目的 プログラムの実行過程を把握するため System.out. …

no image

glassfishとDB接続 ~CUI操作~

JavaEEではDBを使うときにglassfish内で設定が必要です。 基本的にはGlassFishでDB接続などのようにブラウザで管理画面から情報を入力することが可能です。 ただCUIや設定ファイル …

no image

型パラメータに関して

Javaでの型パラメータについて書きたいと思います。 Contents1 基本の型パラメータ2 型パラメータの制限(ある型を継承した場合) 基本の型パラメータ Sample.java [crayon- …