您的位置:首页 > 编程语言 > Java开发

Java设置文件权限

2010-11-15 23:22 477 查看
package com.kkoolerter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.FilePermission;
import java.io.OutputStream;

public class FilePermissionTest {

/**
* @param args
*/
public static void main(String[] args) throws Exception{
//FilePermission filePermission = new FilePermission("HJ0x000", "read");

File file = new File("HJ0x001");
file.setReadable(false);
file.setWritable(false);
OutputStream os = new FileOutputStream(file);
os.write(new String("Hello").getBytes());
os.close();
}

}

运行程序将产生以下异常:

Exception in thread "main" java.io.FileNotFoundException: HJ0x001 (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at com.kkoolerter.FilePermissionTest.main(FilePermissionTest.java:19)

注意:
调用 file.setWritable(false)并没有真正改变硬盘上的文件权限,而是首先通过实例一个SecurityManager实例,如果SecurityManager实例不为空,则调用实例的的checkWrite(String path)方法,该方法又调用了FileSystem的setPermission方法。如果产生的实例为空,则直接调用FileSystem的setPermission方法。该setPermission方法的原型是 public abstract boolean setPermission(File f, int access, boolean enable, boolean owneronly);
本文出自 “有思想的代码” 博客,请务必保留此出处http://wujuxiang.blog.51cto.com/2250829/424137
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: