今日は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として指定可能は値はほかにもあります。
今日はファイルの入出力について書いていきました。
人気ブログランキングへ
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