【问题标题】:give read write permission to file [duplicate]授予文件读写权限[重复]
【发布时间】:2016-04-14 17:38:06
【问题描述】:

大家好,我想授予文件以读取模式或写入模式打开的权限 .ext 包含文件扩展名,file_name 包含文件名。 f_p 是可验证的,我将输入作为“r”或“w”模式。在这里,我在不同的位置使用相同的文件

但是在这段代码中,我收到了错误 找不到符号:方法 setReadable(boolean) 位置:fos2 的类型为 FileOutputStream

这里有一些代码

FileInputStream fis2 = new FileInputStream("e:/profile/epy/"+file_name+".ext");

        FileOutputStream fos2 = new FileOutputStream("e:/decrypt/"+file_name+"."+ext);

                    if(f_p.equals("R")||f_p.equals("r"))
                    {
                        fos2.setReadable(true);
                    }
                    else if(f_p.equals("W")||f_p.equals("w"))
                    {
                        fos2.setWritable(true);
                    }

//这里有一些代码

%> https://jsfiddle.net/wc8pccyL/

【问题讨论】:

  • 是的,Javadocs 清楚地表明FileOutputStream 没有 .setReadable() 方法。 File 对象 OTOH 确实如此。所以使用File 而不是FileOutputStream,并与Javadocs 交朋友。

标签: java jsp


【解决方案1】:

当前代码使用了错误的类(FileOutputStream)。

File f = new File(SOME_PATH);
if ("r".equalsIgnoreCase(f_p)) {
   f.setReadable(true);
   ...
}
if ("w".equalsIgnoreCase(f_p)) {
   f.setWritable(true);
   ...
}

但是,在假设一个人想要写访问而没有读访问时应该小心。 OP 代码中的假设是 f_p 具有单个值“R”或“W”,并设置权限。应仔细检查此假设,尤其是跨操作系统。

另外,如果以后必须使用FileOutputStream(用于实际输出),它有一个接受File对象的构造函数,所以在这种情况下创建File对象不会丢失任何东西,然后创建FileOutputStream fos = new FileOutputStream(f);,其中'f'是之前实例化的文件对象。

【讨论】:

  • 谢谢你....解决了:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 2015-07-11
  • 2019-06-18
  • 2013-12-12
  • 1970-01-01
相关资源
最近更新 更多