Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java URI本地文件系统解决问题_Java_File_Uri_System - Fatal编程技术网

Java URI本地文件系统解决问题

Java URI本地文件系统解决问题,java,file,uri,system,Java,File,Uri,System,我有两个URI,我想从第二个URI中提取文件,如下所示: 。。。 上述解析uri返回file:/Exampe_file.xlsx,这不是我期望的结果。如何处理这两个URI?要解决此问题,第二个URI不应具有前导/ URI uri1 = new URI("C:/Users/TestUser/Desktop/Example_File/"); URI uri2 = new URI("Example_File.xlsx"); System.out.println(uri1.resolve(uri2))

我有两个URI,我想从第二个URI中提取文件,如下所示:

。。。
上述解析uri返回file:/Exampe_file.xlsx,这不是我期望的结果。如何处理这两个URI?

要解决此问题,第二个
URI
不应具有前导
/

URI uri1 = new URI("C:/Users/TestUser/Desktop/Example_File/");
URI uri2 = new URI("Example_File.xlsx");
System.out.println(uri1.resolve(uri2)); 
// C:/Users/TestUser/Desktop/Example_File/Example_File.xlsx

要解决此问题,第二个
URI
不应具有前导
/

URI uri1 = new URI("C:/Users/TestUser/Desktop/Example_File/");
URI uri2 = new URI("Example_File.xlsx");
System.out.println(uri1.resolve(uri2)); 
// C:/Users/TestUser/Desktop/Example_File/Example_File.xlsx
根据以下文件:

[……]

否则,该方法以与第5.2节一致的方式构造新的层次URI;即:

  • 使用此URI的方案和给定URI的查询和片段组件构造一个新URI
  • 如果给定URI具有权限组件,则新URI的权限和路径将取自给定URI
  • 否则,新URI的授权组件将从此URI复制,其路径计算如下:
  • 如果给定URI的路径是绝对路径,则新URI的路径取自给定URI。[强调添加]
  • 否则,给定URI的路径是相对的,因此新URI的路径是通过根据该URI的路径解析给定URI的路径来计算的。这是通过将此URI路径的最后一段(如果有)以外的所有部分与给定URI路径连接起来,然后通过调用
    normalize
    方法对结果进行规范化来实现的
  • 以及国家的类别文件:

    如果层次URI的路径组件以斜杠字符('/')开头,则称其自身为绝对路径组件。[强调添加];否则它是相对的。绝对或指定权限的层次URI的路径始终是绝对的

    由于您有
    URI uri2=new URI(“/Example\u File.xlsx”)
    您正在解析一个具有绝对路径的URI与另一个URI。这意味着,根据文档,结果URI的路径将是
    uri2
    的路径。要解决此问题,请将
    uri2
    的路径设置为相对路径。例如:

    uriuri1=newuri(“文件:/C:/Users/TestUser/Desktop/Example\u file/”;
    URI uri2=新URI(“Example_File.xlsx”);//注意没有前导斜杠
    System.out.println(uri1.resolve(uri2));
    
    输出:

    文件:/C:/Users/TestUser/Desktop/Example\u file/Example\u file.xlsx
    
    来自以下文件:

    [……]

    否则,该方法以与第5.2节一致的方式构造新的层次URI;即:

  • 使用此URI的方案和给定URI的查询和片段组件构造一个新URI
  • 如果给定URI具有权限组件,则新URI的权限和路径将取自给定URI
  • 否则,新URI的授权组件将从此URI复制,其路径计算如下:
  • 如果给定URI的路径是绝对路径,则新URI的路径取自给定URI。[强调添加]
  • 否则,给定URI的路径是相对的,因此新URI的路径是通过根据该URI的路径解析给定URI的路径来计算的。这是通过将此URI路径的最后一段(如果有)以外的所有部分与给定URI路径连接起来,然后通过调用
    normalize
    方法对结果进行规范化来实现的
  • 以及国家的类别文件:

    如果层次URI的路径组件以斜杠字符('/')开头,则称其自身为绝对路径组件。[强调添加];否则它是相对的。绝对或指定权限的层次URI的路径始终是绝对的

    由于您有
    URI uri2=new URI(“/Example\u File.xlsx”)
    您正在解析一个具有绝对路径的URI与另一个URI。这意味着,根据文档,结果URI的路径将是
    uri2
    的路径。要解决此问题,请将
    uri2
    的路径设置为相对路径。例如:

    uriuri1=newuri(“文件:/C:/Users/TestUser/Desktop/Example\u file/”;
    URI uri2=新URI(“Example_File.xlsx”);//注意没有前导斜杠
    System.out.println(uri1.resolve(uri2));
    
    输出:

    文件:/C:/Users/TestUser/Desktop/Example\u file/Example\u file.xlsx