「java读取绝对路径文件」java根据相对路径获取绝对路径

博主:adminadmin 2022-12-01 03:25:08 61

今天给各位分享java读取绝对路径文件的知识,其中也会对java根据相对路径获取绝对路径进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

linux下 Java如何获取文件的绝对路径

需要使用路径时,用下面的方法取得项目根目录的绝对路径(Tools为方法类)

public static String getRootPath() {

String classPath = Tools.class.getClassLoader().getResource("/").getPath();

String rootPath = "";

//windows下

if("\\".equals(File.separator)){

rootPath = classPath.substring(1,classPath.indexOf("/WEB-INF/classes"));

rootPath = rootPath.replace("/", "\\");

}

//linux下

if("/".equals(File.separator)){

rootPath = classPath.substring(0,classPath.indexOf("/WEB-INF/classes"));

rootPath = rootPath.replace("\\", "/");

}

return rootPath;

}

java中怎样获取当前路径的绝对路径

在jsp和class文件中调用的相对路径不同。在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取工程的绝对路径。

另:在Jsp,Servlet,Java中详细获得路径的方法!

1.jsp中取得路径:

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:request.getRequestURI()

结果:/TEST/test.jsp

(2)得到工程名:request.getContextPath()

结果:/TEST

(3)得到当前页面所在目录下全名称:request.getServletPath()

结果:如果页面在jsp目录下 /TEST/jsp/test.jsp

(4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")

结果:D:\resin\webapps\TEST\test.jsp

(5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();

结果:D:\resin\webapps\TEST

2.在类中取得路径:

(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()

结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

(2)得到工程的路径:System.getProperty("user.dir")

结果:D:\TEST

3.在Servlet中取得路径:

(1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。

结果:E:\Tomcat\webapps\TEST

(2)得到IE地址栏地址:request.getRequestURL()

结果:

(3)得到相对地址:request.getRequestURI()

结果:/TEST/test

java中处理绝对路径与相对路径问题

方法(一)、通过某个对象的getClass()方法取得Class,其中包含了类的许多信息。在其中找取得URL之类的方法,以便取得URL,然后调用URL的getpath()方法,取得字符串并稍作处理就得到该类的Class文件的绝对路径,在此基础上就可以方便的使用相对路径。Object.getClass().getResource("/").getPath(); 方法(二) 通过类加载器获取路径信息public abstract class ClassLoader extends Object类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称的“类文件”。 (1) 利用Thread类中的类加载器Thread.currentThread().getContextClassLoader()(2) 利用Class类获取类加载器ClassName.class(或者 对象.getClass()).getClassLoader()API中ClassLoader的相关方法1、public URL getResource(String name)查找具有给定名称的资源。资源是可以通过类代码以与代码基无关的方式访问的一些数据(图像、声音、文本等)。资源名称是以 '/' 分隔的标识资源的路径名称。 此方法首先搜索资源的父类加载器;如果父类加载器为 null,则搜索的路径就是虚拟机的内置类加载器的路径。如果搜索失败,则此方法将调用 findResource(String) 来查找资源。 2、public static URL getSystemResource(String name)从用来加载类的搜索路径中查找具有指定名称的资源。此方法通过系统类加载器来查找资源。 方法(三)利用文件来获取路径 File ff=new File("");API中File类相关的方法:java.io.File 文件和目录路径名的抽象表示形式。1、public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串2、public String getCanonicalPath() throws IOException 返回此抽象路径名的规范路径名字符串。 3、public String getPath() 将此抽象路径名转换为一个路径名字符串。所得字符串使用默认名称分隔符分隔名称序列中的名称。4、public boolean isAbsolute()测试此抽象路径名是否为绝对路径名。绝对路径名的定义与系统有关。在 UNIX 系统上,如果路径名的前缀是 "/",那么该路径名是绝对路径名。在 Microsoft Windows 系统上,如果路径名的前缀是后跟 "\\" 的盘符,或者是 "\\\\",那么该路径名是绝对路径名。 方法(四)利用System类提供信息java.lang.System 包 public final class System extends Object 类 System 类包含一些有用的类字段和方法。它不能被实例化。在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。方法:public static String getProperty(String key) 获取指定键指示的系统属性。首先,如果有安全管理器,则用该键作为其参数来调用 checkPropertyAccess 方法。结果可能导致 SecurityException。 如果没有当前系统属性的集合,则首先用与 getProperties 方法相同的方式创建并初始化系统属性的集合。 参数: key - 系统属性的名称。返回: 系统属性的字符串值,如果没有带有此键的属性,则返回 null。 获取当前工作目录为:System.getProperty("user.dir") // 方法一,利用Class的getResource方法类获取信息(实际上该方法委托ClassLoader类实现) url= absp.getClass().getResource("/AbsPath.class"); path = url.getPath(); System.out.println("方法一:\nURL is : " + url); System.out.println("get Path is : " + path); System.out.println("Real Path is : " + path.substring(1)+"\n"); // 方法二,利用ClassLoader类获取信息 ClassLoader loader=Thread.currentThread().getContextClassLoader(); //或者 //loader = AbsPath.class.getClassLoader(); url=loader.getResource(""); path=url.getPath(); System.out.println("方法二:\nURL is : " + url); System.out.println("get Path is : " + path); System.out.println("Real Path is : " + path.substring(1)); System.out.println(ClassLoader.getSystemResource("")+"\n"); // 方法三,利用文件来处理 File ff=new File(""); System.out.println("方法三:\n"+ff.getAbsolutePath()); System.out.println(ff.getCanonicalPath()); System.out.println(ff.isAbsolute()+ff.getPath()+"\n"); //方法四,利用System类相关信息 System.out.println("方法四:\n"+System.getProperty("user.home"));//用户主目录 System.out.println(System.getProperty("user.dir"));//用户的当前工作目录 System.out.println(System.getProperty("java.class.path"));//Java类路径 System.out.println(System.getProperty("os.name"));//操作系统名称 System.out.println(System.getProperty("os.version"));//操作系统版本 方法一:URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.classget Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.classReal Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class 方法二:URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/get Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/Real Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/file:/D:/Java/EclipseWorkSpace/MyJavaDocs/ 方法三:D:\Java\EclipseWorkSpace\MyJavaDocsD:\Java\EclipseWorkSpace\MyJavaDocsfalse 方法四:d:\我的文档D:\Java\EclipseWorkSpace\MyJavaDocsD:\Java\EclipseWorkSpace\MyJavaDocsWindows XP5.1

Java怎样获取一个文件的绝对路径

FileDialog fileDialog = new FileDialog(this, "选择文件", FileDialog.LOAD);

fileDialog.setVisible(true);

filePath = fileDialog.getDirectory();//获取文件的路径

text.setTex(filePath)

javaweb中怎么获取文件的绝对路径

在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。

另:在Jsp,Servlet,Java中详细获得路径的方法!

1.jsp中取得路径:

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:request.getRequestURI()

结果:/TEST/test.jsp

(2)得到工程名:request.getContextPath()

结果:/TEST

(3)得到当前页面所在目录下全名称:request.getServletPath()

结果:如果页面在jsp目录下 /TEST/jsp/test.jsp

(4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")

结果:D:/resin/webapps/TEST/test.jsp

(5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();

结果:D:/resin/webapps/TEST

2.在类中取得路径:

(1)类的绝对路径:String u=Class.class.getClass().getResource("/").getPath()

结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

(2)得到工程的路径:System.getProperty("user.dir")

结果:D:/TEST

3.在Servlet中取得路径:

(1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。

结果:E:/Tomcat/webapps/TEST

(2)得到IE地址栏地址:request.getRequestURL()

(3)得到相对地址:request.getRequestURI()

结果:/TEST/test

java如何获取类的绝对路径

1 用servlet获取

1.1 获取项目的绝对路径

request.getSession().getServletContext().getRealPath("")

1.2 获取浏览器地址

request.getRequestURL()

1.3 获取当前文件的绝对路径

request.getSession().getServletContext().getRealPath(request.getRequestURI())

2.获取当前的classpath路径

String a2=类名.class.getResource("").toString();

String a3=DBConnection.class.getResource("/").toString();

String a4=DBConnection.class.getClassLoader().getResource("").toString();

String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();

//输出很好理解

3、获取文件的绝对路径

String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();

int num=t.indexOf(".metadata");

String path=t.substring(1,num).replace('/', '\\')+"项目名\\WebContent\\文件";

java读取绝对路径文件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java根据相对路径获取绝对路径、java读取绝对路径文件的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-01,除非注明,否则均为首码项目网原创文章,转载请注明出处。