java check 方法_Java SecurityManager checkWrite()方法与示例

语法:public void checkWrite(FileDescriptor  file_des);

public void checkWrite(String fi);

SecurityManager类checkWrite()方法checkWrite()方法在java.lang包中可用。

checkWrite(FileDescriptor file_des)方法使用RuntimePermission(“ writeFileDescriptor”)调用checkPermission来写入给定的文件描述符。

checkWrite(String fi)方法使用FilePermission(fi,“ write”)调用checkPermission以通过给定的fi参数写入文件。

checkWrite(FileDescriptor file_des),checkWrite(String fi)方法在从不同媒体写入文件时可能会引发异常。

checkWrite(FileDescriptor file_des):SecurityException-如果不允许调用线程写入给定的文件描述符,则可能引发此异常。

NullPointerException-如果给定参数为null,则可能引发此异常。

checkWrite(String fi):SecurityException-如果不允许调用线程写入给定文件,则可能引发此异常。

NullPointerException-如果给定参数为null,则可能引发此异常。

这些是非静态方法,只能通过类对象访问,如果尝试使用类名称访问这些方法,则会收到错误消息。

参数:在第一种情况下,FileDescriptor file_des-此参数表示特定于系统的文件描述符。

在第二种情况下,字符串fi-此参数表示系统特定的文件名。

返回值:

此方法的返回类型为void,不返回任何内容。

示例//Java程序演示示例

//checkWrite()SecurityManager类的方法的说明

import java.security.*;

import java.io.*;

public class CheckWrite extends SecurityManager {

public static void main(String[] args) {

FileDescriptor file_desc = new FileDescriptor();

String fi = "getProperties().doc";

//通过使用setProperty()方法是设置策略属性

//与安全经理

System.setProperty("java.security.policy", "file:/C:/java.policy");

//实例化CheckWrite对象

CheckWrite cw = new CheckWrite();

//通过使用setSecurityManager()方法是设置

//安全经理

System.setSecurityManager(cw);

//通过使用CheckWrite(FileDescriptor)方法是

//通过使用文件描述符检查写文件

cw.checkWrite(file_desc);

//通过使用CheckWrite(String)方法是

//检查该写入文件

cw.checkWrite(fi);

//显示消息

System.out.println("Accepted..");

}

}

输出结果Exception in thread "main" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "writeFileDescriptor")

at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)

at java.base/java.security.AccessController.checkPermission(AccessController.java:897)

at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322)

at java.base/java.lang.SecurityManager.checkWrite(SecurityManager.java:727)

at CheckWrite.main(CheckWrite.java:25)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值