精华内容
下载资源
问答
  • java绝对路径和相对路径Today we will look into the Java file path. Java File path can be abstract, absolute or canonical. 今天,我们将研究Java文件路径。 Java File路径可以是抽象的,绝对的或规范的。 ...

    java绝对路径和相对路径

    Today we will look into the Java file path. Java File path can be abstract, absolute or canonical.

    今天,我们将研究Java文件路径。 Java File路径可以是抽象的,绝对的或规范的。

    Java文件路径 (Java File Path)

    java.io.File contains three methods for determining the file path, we will explore them in this tutorial.

    java.io.File包含三种确定文件路径的方法,我们将在本教程中对其进行探讨。

    1. getPath(): This file path method returns the abstract pathname as String. If String pathname is used to create File object, it simply returns the pathname argument. If URI is used as argument then it removes the protocol and returns the file name.

      getPath() :此文件路径方法将抽象路径名作为String返回。 如果使用String路径名创建File对象,则仅返回pathname参数。 如果将URI用作参数,则它将删除协议并返回文件名。
    2. getAbsolutePath(): This file path method returns the absolute path of the file. If File is created with absolute pathname, it simply returns the pathname.

      If the file object is created using a relative path, the absolute pathname is resolved in a system-dependent way. On UNIX systems, a relative pathname is made absolute by resolving it against the current user directory.

      On Microsoft Windows systems, a relative pathname is made absolute by resolving it against the current directory of the drive named by the pathname, if any; if not, it is resolved against the current user directory.

      getAbsolutePath() :此文件路径方法返回文件的绝对路径。 如果使用绝对路径名创建File,则它仅返回路径名。

      如果使用相对路径创建文件对象,则以系统相关的方式解析绝对路径名。 在UNIX系统上,通过相对于当前用户目录解析相对路径名来使它成为绝对路径。

      在Microsoft Windows系统上,通过将相对路径名与由该路径名命名的驱动器的当前目录(如果有)进行解析来使它成为绝对路径。 如果不是,则针对当前用户目录进行解析。

    3. getCanonicalPath(): This path method returns the canonical pathname that is both absolute and unique. This method first converts this pathname to absolute form if necessary, as if by invoking the getAbsolutePath method, and then maps it to its unique form in a system-dependent way.

      This typically involves removing redundant names such as “.” and “..” from the pathname, resolving symbolic links (on UNIX platforms), and converting drive letters to a standard case (on Microsoft Windows platforms).

      getCanonicalPath () :此路径方法返回绝对且唯一的规范路径名。 如有必要,此方法首先将此路径名转换为绝对形式,就像通过调用getAbsolutePath方法一样,然后以与系统有关的方式将其映射为其唯一形式。

      这通常涉及删除多余的名称,例如“。”。 和(..)从路径名开始,解析符号链接(在UNIX平台上),并将驱动器号转换为标准大小写(在Microsoft Windows平台上)。

    Java文件路径示例 (Java File Path Example)

    Let’s see different cases of the file path in java with a simple program.

    让我们用一个简单的程序查看java中文件路径的不同情况。

    package com.journaldev.files;
    
    import java.io.File;
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    
    public class JavaFilePath {
    
    	public static void main(String[] args) throws IOException, URISyntaxException {
    		File file = new File("/Users/pankaj/test.txt");
    		printPaths(file);
    		// relative path
    		file = new File("test.xsd");
    		printPaths(file);
    		// complex relative paths
    		file = new File("/Users/pankaj/../pankaj/test.txt");
    		printPaths(file);
    		// URI paths
    		file = new File(new URI("file:///Users/pankaj/test.txt"));
    		printPaths(file);
    	}
    
    	private static void printPaths(File file) throws IOException {
    		System.out.println("Absolute Path: " + file.getAbsolutePath());
    		System.out.println("Canonical Path: " + file.getCanonicalPath());
    		System.out.println("Path: " + file.getPath());
    	}
    
    }

    Below image shows the output produced by the above java file path program.

    下图显示了上述java文件路径程序产生的输出。

    The output is self-explanatory. Based on the output, using the canonical path is best suitable to avoid any issues because of relative paths.

    输出是不言自明的。 基于输出,使用规范路径最适合避免相对路径引起的任何问题。

    Also, note that the java file path methods don’t check if the file exists or not. They just work on the pathname of the file used while creating the File object. That’s all for different types of the file path in java.

    另外,请注意,java文件路径方法不会检查文件是否存在。 它们仅在创建File对象时使用的文件路径名上工作。 这就是java中不同类型的文件路径的全部。

    GitHub Repository.GitHub存储库中签出更多的Java IO示例。

    翻译自: https://www.journaldev.com/848/java-file-path-absolute-canonical

    java绝对路径和相对路径

    展开全文
  • 绝对路径 > 以根目录开始的路径是绝对路径Windows:"D:\",Linux:"/",D:\eclipse\test.txt--绝对路径 相对路径 > 相对于当前目录的路径,C:\Program Files\Java\jdk1.8.0_66...
    
    	绝对路径
    	   > 以根目录开始的路径是绝对路径Windows:"D:\",Linux:"/",D:\eclipse\test.txt--绝对路径
    	
    	相对路径
    	   > 相对于当前目录的路径,C:\Program Files\Java\jdk1.8.0_66\bin
    	   		>> 如果我当前操作的路径在jdk1.8.0_66
    	   			./jdk1.8.0_66/test.txt--写"./"或者不写代表当前目录下的test.txt
    	   			../jdk1.8.0_66/one.txt--写"../"代表上一级目录下的one.txt
    	   			
    	其实使用相对路径找到的文件Java也会把路径构建成绝对路径然后使用资源
    		
    
    
    展开全文
  • Java绝对路径的方法

    2014-10-08 10:49:57
    爱Java这里归纳一些取Java绝对路径的方法,下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。  1.FileTest.class.getResource(””) ...

    Java开发中,经常需要处理各种路径的时候。如果不掌握一些方法。估计你就会晕菜!爱Java这里归纳一些取Java绝对路径的方法,下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。

        1.FileTest.class.getResource(””)

        得到的是当前类FileTest.class文件的URI目录。不包括自己!

        如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

        2.FileTest.class.getResource(”/”)

        得到的是当前的classpath的绝对URI路径。

        如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

        3.Thread.currentThread().getContextClassLoader().getResource(””)

        得到的也是当前ClassPath的绝对URI路径。

        如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

        4.FileTest.class.getClassLoader().getResource(””)

        得到的也是当前ClassPath的绝对URI路径。

        如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

        5.ClassLoader.getSystemResource(””)

        得到的也是当前ClassPath的绝对URI路径。

        如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

        我推荐使用Thread.currentThread().getContextClassLoader().getResource(””)来得到当前的classpath的绝对路径的URI表示法。

        在Web应用程序中,我们一般通过ServletContext.getRealPath(”/”)方法得到Web应用程序的根目录的绝对路径。这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。

        注重点:

        1.尽量不要使用相对于System.getProperty(”user.dir”)当前用户目录的相对路径。这是一颗定时炸弹,随时可能要你的命。

        2.尽量使用URI形式的绝对路径资源。它可以很轻易的转变为URI,URL,File对象。

        3.尽量使用相对classpath的相对路径。不要使用绝对路径。使用上面ClassLoaderUtil类的public static URLgetExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。

        4.绝对不要使用硬编码的绝对路径。因为,我们完全可以使用ClassLoader类的getResource(””)方法得到当前classpath的绝对路径。

        使用硬编码的绝对路径是完全没有必要的!它一定会让你死的很难看!程序将无法移植!

        假如你一定要指定一个绝对路径,那么使用配置文件,也比硬编码要好得多!

        当然,我还是推荐你使用程序得到classpath的绝对路径来拼资源的绝对路径

    注明: 晨风²º¹⁴ 2014年05月20日 于 爱Java 发表

    展开全文
  • java获取路径几种途径,1、获取web服务器下的文件路径,2、获取本地路径,3、获取相对路径
  • 1. 什么是绝对路径?什么是相对路径? 绝对路径: 也可称完整路径,是指向文件系统中某个固定位置的路径,不会因当前的工作目录而产生变化。为做到这点,它必须包括根目录。 举例: test.txt文件的绝对路径为:D:\...

    1. 什么是绝对路径?什么是相对路径?

    绝对路径: 也可称完整路径,是指向文件系统中某个固定位置的路径,不会因当前的工作目录而产生变化。为做到这点,它必须包括根目录。

    举例:
    test.txt文件的绝对路径为:D:\documents\develop\test.txt
    https://www.oracle.com/index.html代表了一个URL绝对路径
    复制代码

    相对路径: 则是以指定的工作目录作为基点,避开提供完整的绝对路径。文件名称就可以被视为指定工作目录为基点的一个相对路径(虽然一般不将其称之为路径)。

    Java中加载文件时使用的相对路径,究竟是相对于什么路径呢?
    
    据java doc上说明,Java使用的相对路径,就是相对于“当前用户目录”,即“Java虚拟机的调用目录”,更白话就是:我们在哪里调用了JVM的路径。
    
    举例:
    D盘根目录下有一java源文件Test.java,如:D:\Test.java
    该Test.java文件不含package信息,在命令行窗口编译此文件(执行命令:javac Test.java),则会在D盘自动生成Test.class文件。
    然后在命令行窗口执行该程序(执行命令:java Test),此时已启动一个JVM,这个JVM是在D盘根目录下被启动的,则JVM所加载程序中File类的相对路径就是相对D盘根目录的,即 D:\
    
    “当前用户目录”,即Java虚拟机的调用目录,也是:D:\
    System.getProperty("user.dir")中系统变量"user.dir"存放的也是 D:\
        
    说明:把Test.class移动到不同路径下,执行java Test命令启动JVM,发现“当前用户目录”是不断变化的,始终和在哪启动JVM的路径是一致的。
    复制代码

    来自维基百科:zh.wikipedia.org/wiki/路径_(计算…

    2. 路径的分类

    3. 路径的区别和操作API

    3.1 Java Class的相对路径

    • 相对于classpath的相对路径

      classpath: 就是项目中存放.class文件的路径。

      举例:
      Eclipse项目中classpath为:D:\eclipse32\workspace\java-demo\bin,相对于classpath的相对路径,就是相对于D:\eclipse32\workspace\java-demo\bin的相对路径。
      (URL形式表示为:file:/D:/eclipse32/workspace/java-demo/bin/)
          
      IntelliJ IDEA项目中classpath为:D:\ideaProjectDemo\java-demo\target\classes,相对于classpath的相对路径,就是相对D:\ideaProjectDemo\java-demo\target\classes的相对路径。
      (URL形式表示为:file:/D:/ideaProjectDemo/java-demo/target/classes/)
      复制代码
    • 相对于当前用户目录的相对路径

      当前用户目录:即Java虚拟机的调用目录,即System.getProperty("user.dir")返回的路径。

      对于一般项目,就是项目的根目录,例如:java-demo项目的项目根目录为:D:\ideaProjectDemo\java-demo。

      对于JavaEE服务器,可能是服务器的某个路径,这个没有统一的规范,例如:在Tomcat中运行Web应用,那“当前用户目录”是:%Tomcat_Home%/bin(即System.gerProperty("user.dir")输出%Tomcat_Home%/bin),即D:\Program Files\tomcat-5.0.28\bin,由此可以看出Tomcat服务器是在bin目录下启动JVM的(其实是在bin目录下的“catalina.bat”文件中启动JVM的)。

      说明:

      默认情况下,java.io包中的类总是根据“当前用户目录”来分析相对路径名,此目录由系统属性user.dir指定,通常是Java虚拟机的调用目录。

      也就是说:在使用java.io包中的类时,最好不要使用相对路径。(在J2EE程序中会出问题,这个路径在不同的服务器中都是不同的)

      所以,不要使用相对于“当前用户目录”的相对路径。

    3.2 Web应用程序相对路径

    • 服务器端相对地址

      服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的。也就是说在jsp和servlet中的相对地址是相对于你的web应用,即相对于http://192.168.0.1/webapp/的。

      举例:
      1.servlet中:
      request.getRequestDispatcher("/user/index.jsp"),这个"/user/index.jsp"是相对于当前web应用的webapp目录的,
      其绝对地址就是:http://192.168.0.1/webapp/user/index.jsp
      
      2.jsp中:
      <%response.sendRedirect("/user/a.jsp");%>
      其绝对地址是:http://192.168.0.1/webapp/user/a.jsp
      复制代码
    • 客户端相对地址

      所有的HTML页面中的相对地址都是相对于服务器根目录(http://192.168.0.1/)的,而不是相对于服务器根目录下Web应用目录(http://192.168.0.1/webapp/)的。

      举例:
      HTML中form表单的action属性的地址是相对于服务器根目录(http://192.168.0.1)的,
      所以提交到index.jsp为:action="/webapp/user/index.jsp"或action="<%=request.getContextPath()%>/user/a.jsp";
      
      说明:
      一般情况下,在JSP/HTML页面等引用的CSS,JavaScript.Action等属性前面最好都加上<%=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录。
      注意:
      应该尽量避免使用".","./","../../"等类似的相对该文件位置的相对路径,否则当文件移动时,很容易出现问题。
      "./"代表当前目录
      "../"代表上级目录
      "../../"代表上级目录的上级目录
      复制代码
    展开全文
  • 注意:相对于当前用户目录的相对路径 就是相对于... 所以,绝对不要使用"相对于当前用户目录的相对路径"。然而: 默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.di...
  • 绝对路径:是从盘符开始的路径,形如 C:\windows\system32\cmd.exe 相对路径:是从当前路径开始的路径,假如当前路径为C:\windows 要描述上述路径,只需输入 system32\cmd.exe 实际上,严格的相对路径写法应为 ...
  •  在java中路径有两种表示方法:绝对路径和相对路径。  (1) 相对路径:它以不带“\”的目录名表示,是指从当前路径开始的路径  假如当前路径为C:\windows 要描述上述路径,只需输入system32\cmd.exe实际上,...
  • 绝对路径绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。 相对路径:...
  • 1.基本概念的理解绝对路径绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。...
  • package javatest; import org.junit.Test; import java.io.File; import java.io.InputStream; import java.net.URL; /** * Created by Lovell on 7/18/16. */ public class FileTest { @Test public
  • 绝对路径绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。 相对路径:...
  • 自动化测试中,如果我们将好不容易编写好的ui自动化测试代码放到另一台机器中,那么文件所处的位置肯定会发生变化,那么遇到需要执行系统文件的时候,就肯定会报错,因为找不到文件了,这时,我们把文件路径写成相对...
  • 绝对路径绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。 相对路径:相对...
  • <br />转载地址:http://my.oschina.net/jing31/blog/6605<br />关于绝对路径和相对路径:  绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test....
  • 【反射】java绝对路径获取文件

    千次阅读 2017-12-04 19:32:51
    1. Class.getResourceAsStream(String path)  用法:AAA.class.getResourceAsStream("a.txt")  path 不以'/'开头时默认是从此类所在的...其只是通过path构造一个绝对路径,最终还是由ClassLoader获...
  • Java绝对路径读取jar包

    千次阅读 2015-01-30 23:19:42
    方法一: package ... import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; public class Test { public static void main(String[] args) { // TODO Auto-gen
  • 下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得 到你需要的资源的绝对路径。  1.FileTest.class.getResource("")  得到的是当前类FileTest.class文件的URI...
  • java绝对路径(RCP)

    千次阅读 2010-12-15 19:57:00
    基本概念的理解 绝对路径绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:/xyz/est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对...
  • java 绝对路径工具类

    2009-12-19 21:20:00
    在程中我们常取一些资源的绝对径,下面给出一个简单方便的工具类来帮助我们轻松的找到我想的资源。(适用于CS/BS应用)import java.io.File;import java.io.IOException;import java.net.URI;import java.net....
  • 本文是一篇Java相对路径绝对路径全面总结的word文档。
  • import java.io.File;... * java相对路径、绝对路径及类路径的测试 */ public class Test { /** * 测试相对路径是相对谁 * -- 相对于部署项目的文件夹(AppServer) */ // @org.junit.Test public voi...
  • Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00019826 Java相对路径/绝对路径总结(2) 修
  • java相对路径与绝对路径

    千次阅读 2015-11-26 22:43:21
    绝对路径绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。 相对路径:...
  • 主要介绍了java区分绝对路径和相对路径的方法,实例分析了java针对路径操作的相关技巧,需要的朋友可以参考下
  • 1.基本概念的理解绝对路径绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,188
精华内容 2,875
关键字:

java绝对路径

java 订阅