【问题标题】:Create new File(URI) with authority component使用权限组件创建新文件(URI)
【发布时间】:2014-10-24 20:15:47
【问题描述】:

从网络文件夹运行我的 java 应用程序时,我遇到了 IllegalArgumentException,它指出:URI 具有权限组件。

我调试并发现问题是我正在通过传入带有权限组件的 URI 创建一个新文件。以前从来没有遇到过这个问题,因为我一直在本地运行应用,没有权限组件。

URI uri = new URI("...network path...//myFile");

这会引发错误:

File file = new File(uri);

这行得通:

File file = new File(uri.toString());

我看到在 File(Uri) 构造函数中它不允许带有权限组件的 URI。谁能解释为什么?以及为什么允许我为字符串创建文件?

谢谢!

【问题讨论】:

  • File(URI uri) 是 File 的有效构造函数...
  • 也来自文档,这可能会有所帮助: 参数:uri - 一个绝对的分层 URI,其方案等于“文件”,一个非空路径组件,以及未定义的权限、查询和片段组件
  • 是的,我知道 File 可以获取 URI,并且我知道 URI 不能具有权限。我试图弄清楚为什么会这样。为什么使用与 URI 等效的字符串路径创建文件?
  • 为什么会这样?因为这是文档指定的内容。

标签: java


【解决方案1】:

File 类用于引用本地文件。它用于像 FileInputStream 这样的类,这些类不进行网络 I/O,因此无法读取远程文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2011-09-17
    • 2013-07-06
    • 2016-02-01
    • 2016-06-19
    • 2021-08-02
    • 2016-02-29
    相关资源
    最近更新 更多