FileOutputStreamクラス

FileOutputStreamクラスはOutputStreamクラスを継承したクラスです。
このクラスはバイト単位のデータをファイルに出力します。
このクラスもjava.ioパッケージに属しているので利用するときは必ずimport宣言が必要です。

FileOutputStreamクラスのコンストラクタは以下のようになります。

コンストラクタ
説明
FileOutputStream(File file) ファイルオブジェクトを引数にわたしてインスタンス生成を行います
FileOutputStream(String name) 引数にファイル名を絶対パスで指定してインスタンス生成を行います
FileOutputStream(String name,boolean b) ファイル名を絶対パスに指定し、ファイルを追記できるようにするかを指定し、インスタンス生成することが出来ます。trueを引数に渡すと、追記可能になる
ではサンプルプログラムを見ていきます。

サンプルプログラム(FileOutputStreamSample.java)

//import宣言

import java.io.*; class FileOutputStreamSample{ public static void main(String args[]){ try{ //データを格納する配列の生成
byte data[] = "はじめてのJava入門".getBytes(); //FileOutputStreamオブジェクトの生成 FileOutputStream fo = new FileOutputStream(args[0]); //ファイルに書き出し for(int i = 0; i < data.length; i++){ fo.write(data[i]); } System.out.println("書き込み終了"); fo.close(); }catch(IOException e){ System.out.println("IOException : " + e); }
} }

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。
今回実行の際はtest5.txtに書き込みます。

作成されたtest5.txtを開いてみると以下のようになります。

結果はこのようになります。
プログラムの解説を行います。
まずやはりjava io パッケージをimport宣言してやる必要があります。

次にデータを格納する配列を作成しています。

FileOutputStreamクラスは最初に説明した通りバイト型のデータを出力します。
従ってbyte型の配列を作成しています。

今回は文字列"はじめてのJava入門"をStringクラスのgetBytes()メソッドを利用して
String型の文字列をbyte型に変換しています。

Stringクラスはjava.langパッケージに属しています。
このlangパッケージはimportしなくても利用できました。
従ってこのまま呼び出しています。

次にfor文を使い全てのデータの書き出しを行っています。

fo.write(data[i]);が書き出し処理を行っています。
書き出しが終わるとclose()メソッドでFileOutputStreamオブジェクトを閉じています。
やはりこのプログラムをファイルに書き込みが出来なかった場合に備えて例外処理を行います。

あくまでもこのクラスはbyte単位のデータを出力するクラスです

ページのトップへ戻る