首页 > Java

Java检查文件的可读性

发表于2014-08-27 13:45:23| --次阅读| 来源webkfa| 作者小豆豆

摘要:Java检查文件的可读性这个是从国外网站翻译过来的

      文件操作是相当平台依赖性。尽管Java编程语言是跨平台的,文件运行在Java is also平台依赖性。the obvious evidence is the file权限检查。在Java,我们可以叫canread(),()和()canwrite canexecutable to check whether the program can read,write or执行指定的文件。然而,我们的Windows我们canread我们队列对象,我们可以得到意想不到的结果

实际上,我们的Windows,当我们说canread()我们队列对象,我们将永远get the true returned Even if we have access to the file Denied the读。There is also a bug for this和它仍然不是固定的。细节can be found here the bug。我们可以使用下面的代码

java代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
 
public class FilePermissionTest{
    public static void main(String args[]){
        try{
            File file=new File("test.txt");
            System.out.println("Can read : "+file.canRead());   
             
            FileInputStream input=new FileInputStream(file);
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }
    }
}
运行错误结果

Can read : true
java.io.FileNotFoundException: test.txt (Access is denied)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.(FileInputStream.java:106)
        at FilePermissionTest.main(FilePermissionTest.java:11)

从输出中,我们不难发现,canread()返回true当我们创建FileInputStream对象,我们可以拒绝访问错误

有什么办法可以解决这个问题在Windows?是的Java 7开始我们有java.nio.file包和java.nio.file.files这应该是如果你想拥有你想操作文件更多的控制

现在我们有代码

java代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.nio.file.Files;
import java.nio.file.FileSystems;
 
public class FilePermissionTest{
    public static void main(String args[]){
        try{
            File file=new File("test.txt");
            System.out.println("Can read : "+file.canRead());   
             
            System.out.println("Is readable : "+Files.isReadable(FileSystems.getDefault().getPath(file.getAbsolutePath())));
             
            FileInputStream input=new FileInputStream(file);
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }
    }
}

输出结果:

Can read : true
Is readable : false
java.io.FileNotFoundException: test.txt (Access is denied)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.(FileInputStream.java:146)
        at FilePermissionTest.main(FilePermissionTest.java:15)

从输出中我们可以看到文件isreadable()返回正确的值

顺便说一下如果你打电话给setreadable()一个文件对象你可能会失望的

原英文地址:Check file readability in Java

相关文章

猜你喜欢

学到老在线代码浏览器 关闭浏览
友情链接: hao123 360导航 搜狗网址导航 114啦网址导航 博客大全
Copyright © 1999-2014, WEBKFA.COM, All Rights Reserved  京ICP备14034497号-1