2012年8月24日金曜日

NIO2を使ってファイルの作成

Files.createFileを使ってファイルの作成を行う。ファイル作成時にはアクセス権限も設定できたりする。

属性指定なしでファイル作成

Path path = Paths.get("test.txt")
Files.createFile(path)

umaskが022なので644でファイルが作られる。
sh-3.2$ umask
0022
sh-3.2$ ls -ln test.txt
-rw-r--r--  1 501  20  0  8 24 23:40 test.txt


アクセス権限(rwx------)を指定してファイル作成

FileAttribute<Set<PosixFilePermission>> attribute = PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rwx------"))
Path path = Paths.get("test.txt")
// 2番目の引数にFileAttributeを指定する。
Files.createFile(path, attribute)

指定したアクセス権限でファイルが作られる。
sh-3.2$ ls -ltr test.txt
-rwx------  1 hove  staff  0  8 24 23:45 test.txt