`
TimerBin
  • 浏览: 360967 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA 代码中常用文件路径获取方式

    博客分类:
  • JAVA
 
阅读更多

前言

 

   在java中经常会遇到读取各种不同路径下的文件内容信息,以下就是我在使用过程中所遇到的读取不同路径下文件的总结。

 

一、本地系统盘符下的绝对路径的文件

System.out.println(new File("D:/message.properties").getAbsolutePath());
System.out.println(new File("D:/message.properties").getCanonicalPath());

 

获得本地系统D盘下的message.properties文件内容,两种方法都可以读到配置文件内容,它们的区别在对绝对路径文件读取上是不体现的,它们的区别在于对系统盘符中的相对路径的读取上。其中getAbsolutePath()不会将路径中的“./”或者“../”进行解析,getCanonicalPath();会将路径中的“./”或者“../”进行解析成为相应路径。

详细请参考:http://www.blogjava.net/dreamstone/archive/2007/08/08/134968.html

 

二、本地系统盘符下的相对路径

System.out.println(new File("").getCanonicalPath());

 

//在java文件中运行此代码的话可以获得此java文件所在的项目所在磁盘中的路径信息(只到项目名称),路径只到项目名称就结束了。

例子:D:\Eclipse\src\HelloWord

System.out.println(new File("").getAbsolutePath());

 

//此时的getAbsolutePath()方法也可以获得到项目的所在磁盘中的路径信息与getCanonicalPath()方法返回的一致。

System.out.println(new File("../../").getCanonicalPath());

 

//在同一个文件下运行上面内容就表示此项目本地磁盘目录上后退两个目录结构地址

例子:D:\Eclipse 也就是这个地址

System.out.println(new File("../../").getAbsolutePath());

 

//此时getAbsolutePath获得路径就与getCanonicalPath完全不同了,因为它无法识别"./"和"../"信息

例子:D:\Eclipse\src\HelloWord\..\..但它并不报错,但如果去读取后退两个目录结构地址的文件内容时它就会报出错误信息

 

三、ClassPath下的相对路径

 System.out.println(HelloWord.class.getResource("").getFile());
 System.out.println(this.class.getResource("").getFile());

 

//获得HelloWord类所编译后class所存放的地址

例子:D:/Eclipse/src/HelloWord/WEB-INF/classes/com

 

System.out.println(HelloWord.class.getResource("../").getFile());
System.out.println(this.class.getResource("../").getFile());

 

//获得HelloWord类所编译后class所存放的地址的后退到上一级目录

例子:D:/Eclipse/src/HelloWord/WEB-INF/classes   注意这里只能到这一层不可以再次向上后退

 System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));

 

//直接到当前项目的classPasth根目录下但他会在路径的前方加上file:标识

例子:file:/D:/Eclipse/src/HelloWord/WEB-INF/classes

 

System.out.println(Thread.currentThread().getContextClassLoader().getResource("../"));

 

//此用法是错误,无法在classes目录退后到上一级目录

 

注:在java的jar包中的类使用HelloWord.class.getResource(“").getFile()来对文件进行获取路径时会在项目上加上.jar

例子:file:/D:/HelloWord.jar!/com

注:在项目中引入的Jar包中可以使用ResourceBundle直接获得项目中定义的配置文件。这里不可以识别../和./标识符使用

ResourceBundle.getBundle("配置文件名称");

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JAVA中如何得到文件路径.pdf

    在Java中,可以通过多种方式获取当前文件路径。以下是一些常用的技巧: 1. **使用`System.getProperty("user.dir")`**: - 这个方法返回当前工作目录的路径。 - 示例代码: ```java System.out.println(System....

    基于JAVA的常用文件操作方法

    通过`File`类的构造函数,传入文件路径即可创建一个文件对象,然后调用`createNewFile()`方法创建实际的文件。例如: ```java File file = new File("C:/test.txt"); if (!file.exists()) { boolean created = ...

    java调用winrar生成压缩文件路径有空格问题

    在Java中通过`Runtime.getRuntime().exec()`方法执行外部命令时,如果路径中包含空格,则该命令可能会被解释为多个参数,导致无法正确识别目标文件路径。例如,假设文件路径为"C:\Users\Documents\My Files\file.txt...

    java Web 中相对路径绝对路径问题总结

    在Java Web开发中,理解和掌握相对路径与绝对路径的运用是至关重要的,因为这直接影响到资源定位、页面跳转以及文件读写等操作的正确性。以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与...

    java文件下载的常用方式

    在Java编程中,文件下载是常见的需求,例如从服务器向客户端传输文件,或者在应用程序内部获取网络资源。本文将详细探讨Java实现文件下载的几种主要方法。 ### 1. 使用HttpServletResponse #### 1.1 设置Content-...

    总结一下java获取路径几种途径

    以下是对Java中获取路径几种常见途径的详细解析,包括了从Web应用环境到普通Java应用程序中路径获取的方法,旨在为开发者提供全面的指导。 ### 1. Web应用中的路径获取 #### a. Servlet上下文路径 在Servlet环境中...

    java读取excel文件

    - 直接从本地文件创建:通过指定文件路径,使用`Workbook.getWorkbook(File file)`或`Workbook.getWorkbook(InputStream is)`方法创建。 - 从输入流创建:可以使用`FileInputStream`类将文件转化为输入流,再通过`...

    指定文件路径下所有文件名和路径

    这段代码会遍历指定的文件路径,收集所有文件的名称和完整路径,然后将这些信息存储在Excel表格的'文件名'和'路径'两列中。 在Java中,我们可以使用java.nio.file包的`Files`和`Paths`类来实现类似的功能: ```...

    Java读取TIFF文件

    在上述代码中,我们首先创建一个`File`对象来表示TIFF文件的路径。然后,通过`Imaging.getImageInfo()`方法获取`ImageInfo`对象,该对象包含了关于TIFF文件的各种元数据,如宽度、高度和格式等。最后,我们检查文件...

    java文件自动生成模板

    总之,Java文件自动生成模板是一个实用的开发辅助工具,通过配置和模板引擎,可以实现快速生成符合规范的Java代码,提高开发效率,降低错误率。在这个项目中,用户只需运行`AutoMain`,就能体验到自动生成代码的便利...

    java文件选择器代码

    文件选择器是用户界面中的一个常用组件,用于让用户选择文件或目录。在Java中,`JFileChooser`类提供了文件选择的基本功能,可以通过继承或组合的方式定制自己的文件选择器。 #### 二、核心类和方法 1. **`...

    一个好用的java文件上传代码,供大家交流学习呵呵

    在给定的标题和描述中,我们讨论的是一段使用Commons FileUpload进行文件上传的Java Servlet代码示例。 首先,我们需要引入Commons FileUpload和Commons IO两个库的JAR文件,分别是`commons-fileupload-1.2.jar`和`...

    java代码,给pdf文件加水印

    这段代码中,`addWatermark`方法接受源PDF文件路径、目标PDF文件路径和水印文本作为参数。它遍历每个页面,对每个页面添加水印,然后保存修改后的文档。 请注意,这只是一个基础示例,实际使用时可能需要根据具体...

    Java从网络取得文件源码整理

    在提供的压缩包文件中,`下载及使用说明.txt`可能包含了如何使用Java代码下载文件的步骤或者示例代码。`查看文件解压密码(网址即为解压密码).url`可能指向一个网站,提供了解压压缩包所需的密码。`javaSrc159.zip`...

    java操作xml文件的一个简单代码

    Java操作XML文件是软件开发中常见的任务,XML(Extensible Markup Language)因其结构化和可扩展性被广泛用于数据交换和存储。以下是一些关于如何使用Java处理XML文件的关键知识点: 1. **JAXB(Java Architecture ...

    基于JAVA文件上传

    在Java编程语言中,文件上传是一项常见的功能,广泛应用于各种Web应用中,如社交媒体平台、云存储服务等。实现基于Java的文件上传涉及到多个技术点,包括Servlet、HTTP协议、多部分请求(Multipart Request)以及...

    java实现mysql数据库的表导出到excel文件

    6. **保存Excel文件**:使用`FileOutputStream`将工作簿写入到指定的文件路径,完成Excel文件的创建。 在提供的压缩包中,`mysql_to_excel`可能是一个Java源代码文件,包含了上述步骤的实现。`README.txt`文件通常...

    Java收集的代码段1(待续)常用代码段

    在Java编程中,窗口风格、窗口居中、组件拖动、文件路径处理和设置背景图片是常见的需求。这里,我们详细探讨这些知识点。 1. **窗口风格**:在Java Swing库中,我们可以使用JFrame类来创建窗口。窗口风格可以通过...

Global site tag (gtag.js) - Google Analytics