广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java中的POSIX文件权限是什么?_北大青鸟IT学校

作者:邓华发布时间:2021-04-14分类:Java技术浏览:1075


导读:相信大家在学习Java的过程都会遇到各种各样的问题,例如:Java中的POSIX文件权限是什么?那么下面我们一起来看看惠州北大青鸟学术部老师是怎么解答的。

相信大家在学习Java的过程都会遇到各种各样的问题,例如:Java中的POSIX文件权限是什么?那么下面我们一起来看看惠州北大青鸟学术部老师是怎么解答的。

UNIX支持POSIX标准文件属性。POSIX文件权限由九个组件组成:

three for the owner

three for the group

three for others

这三种类型的权限是读,写和执行。

字符串形式的典型POSIX文件权限看起来像“rw-rw ----",它具有所有者和组的读取和写入权限。

PosixFilePermission枚举类型定义九个常量,每个权限组件一个。

九个常数命名为X_Y,其中X是OWNER,GROUP和OTHERS,Y是READ,WRITE和EXECUTE。

PosixFilePermissions是一个实用程序类,它具有将文件的POSIX权限从一种形式转换为另一种形式的方法。

它的toString()方法将一组PosixFilePermission枚举常量转换为rwxrwxrwx形式的字符串。

它的fromString()方法将rwxrwxrwx形式的字符串中的POSIX文件权限转换为一组PosixFilePermission枚举常量。

它的asFileAttribute()方法将一组PosixFilePermission枚举常量转换为FileAttribute对象。

以下代码以默认目录中名为test的文件的rwxrwxrwx格式读取和打印POSIX文件权限:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFileAttributeView;
import java.nio.file.attribute.PosixFileAttributes;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;public class Main {  public static void main(String[] argv)throws Exception {
   Path path = Paths.get("test");
   PosixFileAttributeView posixView = Files.getFileAttributeView(path,
       PosixFileAttributeView.class);
   PosixFileAttributes attribs = posixView.readAttributes();
   Set<PosixFilePermission> permissions = attribs.permissions();
   // Convert the file permissions into the rwxrwxrwx string form
   String rwxFormPermissions = PosixFilePermissions.toString(permissions);
   // Print the permissions
   System.out.println(rwxFormPermissions);
 }
}

要更新POSIX文件权限,请调用PosixFileAttributeView的setPermissions()方法,将PosixFilePermission枚举常量的Set作为参数传递。

以下代码显示如何设置POSIX文件权限:

String rwxFormPermissions = "rw-r-----";
Set<PosixFilePermission> permissions = PosixFilePermissions.fromString(rwxFormPermissions);

posixView.setPermissions(permissions);

以下代码直接创建一组PosixFilePermission枚举常量,并将其设置为文件权限。

Set<PosixFilePermission> permissions = EnumSet.of(OWNER_READ,  OWNER_WRITE, GROUP_READ);
posixView.setPermissions(permissions);

以下代码演示如何在类似UNIX的平台上读取和更新名为test的文件的POSIX文件权限。

import static java.nio.file.attribute.PosixFilePermission.GROUP_READ;import static java.nio.file.attribute.PosixFilePermission.OWNER_READ;import static java.nio.file.attribute.PosixFilePermission.OWNER_WRITE;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.attribute.PosixFileAttributeView;import java.nio.file.attribute.PosixFileAttributes;import java.nio.file.attribute.PosixFilePermission;import java.nio.file.attribute.PosixFilePermissions;import java.util.EnumSet;import java.util.Set;public class Main {  public static void main(String[] args) throws Exception {
   Path path = Paths.get("test");
   PosixFileAttributeView posixView = Files.getFileAttributeView(path,
       PosixFileAttributeView.class);    if (posixView == null) {
     System.out.format("POSIX attribute view  is not  supported%n.");      return;
   }
   readPermissions(posixView);
   updatePermissions(posixView);
 }  public static void readPermissions(PosixFileAttributeView posixView)      throws Exception {
   PosixFileAttributes attribs;
   attribs = posixView.readAttributes();
   Set<PosixFilePermission> permissions = attribs.permissions();    // Convert the set of posix file permissions into rwxrwxrwx form    String rwxFormPermissions = PosixFilePermissions.toString(permissions);
   System.out.println(rwxFormPermissions);
 }  public static void updatePermissions(PosixFileAttributeView posixView)      throws Exception {
   Set<PosixFilePermission> permissions = EnumSet.of(OWNER_READ, OWNER_WRITE,
       GROUP_READ);
   posixView.setPermissions(permissions);
   System.out.println("Permissions set successfully.");
 }
}

上面的代码生成以下结果。

POSIX attribute view is not suppoted

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

Java13.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表