2016年10月11日火曜日

Pathの機能(ファイルの入出力)

みなさん。 こんばんは。

今日はJava SE 7/8 でのファイルの入出力について見ていきます。

Java SE 7/8 では Files.newInputStream()メソッド、Files.newOutputStream()メソッド、

Files.newByteChannel()メソッドで、それぞれPathが示すファイルに対するInputStream、

OutputStream、ByteChannelが取得できます。

では具体的に見ていきましょう。

// Pathから入出力ストリームを取得する
Path path = Paths.get("C:/Users/test.txt");
// InputStreamを取得
InputStream in = Files.newInputStream(path);
// OutputStreamを取得
OutputStream out = Files.newOutputStream(path);
// ByteChannelを取得
ByteChannel channel = Files.newByteChannel(path);

ストリームを取得した後は読み込みや書き込みの処理に移ります。

メソッド名が具体的で分かりやすいですね!

これらのメソッドには第2引数以降に java.nio.file.OpenOption を渡すことで、

オープンモードを指定できます。OpenOptionは、java.nio.file.StandardOpenOptionという

enumで指定します。

// オープンモードを指定する
import static java.nio.file.StandardOpenOption.*;
// (APPENDオプション)すでに存在するファイルを追記モードでオープンする
OutputStream out1 = Files.newOutputStream(path, APPEND);
// (CREATEオプション) 存在しない場合は新規作成
OutputStream out2 = Files.newOutputStream(path, CREATE, APPEND);
// (CREATE_NEWオプション)ファイルを作成し書き込みモードでオープン。すでにファイルが存在する場合は例外をスローする
OutputStream out3 = Files.newOutputStream(path, CREATE_NEW);

OpenOptionとして指定可能は値はほかにもあります。

今日はファイルの入出力について書いていきました。


人気ブログランキングへ

1 件のコメント:

  1. Casino Hotel Las Vegas - MapYRO
    Casino Hotel Las Vegas in Las Vegas, NV 용인 출장마사지 is an easy 군산 출장안마 drive from 당진 출장마사지 M Resort Las Vegas, 서울특별 출장안마 with free public transportation. The following transit lines have 오산 출장마사지 routes

    返信削除