こんにちは!ISAMU(@burlesca_isa)です!
今回の対象読者は
- ファイルの入出力について知りたい方
この記事は前編があります。
[nlink url=”https://kajirinyo.com/java_course_38/”]ファイルの文字列の内容を読み込む
ファイルの文字列は入力テキストストリームで読み込みます。
使用するクラスは下記の通りです。
- Pathインターフェース・・・ファイルパスの指定
- Pathsクラス・・・ファイルパスの指定
- Filesクラス・・・newBufferedReaderメソッドを使用する
- BufferedReaderクラス・・・ファイル読み込み時にバッファーを使用する
ファイルパスに関しては別の記事で書いています。
BufferedReaderとFilesクラスを使用した構文
BufferedReader 変数名 = Files.newBufferedReader(path);
BufferedReaderクラスのreadLineメソッドを使用して
ファイルの内容を1行ずつ出力します。
while((line=変数名.readLine()) ! = null ){
System.out.println()line;
}
ファイルに文字列を出力する
ファイルの出力は出力テキストストリームで行います。
使用するクラスは下記の通りです。
- Pathインターフェース・・・ファイルパスの指定
- Pathsクラス・・・ファイルパスの指定
- Filesクラス・・・newBufferedWriterメソッドを使用する
- BufferedWriterクラス・・・ファイル出力時にバッファーを使用する
構文
BufferdWriter 変数名 = Files.newBufferedWriter(path);
newBufferedWriterには第2引数にオプションを指定することができます。
よく使われるオプションを紹介します。
- StandardOpenOption.APPEND・・・既存のファイルの末尾に追記
- StandardOpenOption.CREATE・・・ファイルが存在しなければ新規に作成する
オブジェクトをファイルに出力する
オブジェクトの出力には
出力バイナリストリームを使用します。
使用するクラスは下記の通りです。
- ObjectOutputStream
- BufferedOutputStream・・・バッファーを使用する
- FileOutputStream
構文
ObjectOutputStream 変数名 = new ObjectOutputStream(new BufferedOutputStream( new FileOutputStream(objectPath)))
FileOutputStreamの引数にはString型のファイルパスを記述します。
インスタンスを作成後にメソッドで文字列を記述していきます。
- writeObject()・・・オブジェクト
- writeInt()・・・プリミティブ
- writeDouble・・・プリミティブ
- writeUTF()・・・文字列
※ここで言うオブジェクトとはLocalDateなどです。
自作オブジェクトはシリアライズやデシリアライズで入出力を行います。
オブジェクトを読み込む
オブジェクトの入力には
入力バイナリストリームを使用します。
使用するクラスは下記の通りです。
- ObjectInputStream
- BufferedInputStream・・・バッファーを使用する
- FileInputStream
構文
ObjectInputStream 変数名 = new ObjectInputStream( new BufferedInputStream(new FileInputStream(objectPath)));
FileOutputStreamの引数にはString型のファイルパスを記述します。
読み込むにはメソッドを使用します。
- readObject()・・・オブジェクト
- readInt()・・・プリミティブ
- readDouble()・・・プリミティブ
- readUTF()・・・文字列