`

Java读取项目资源里的文件

    博客分类:
  • Java
 
阅读更多

我们会经常遇到这样的问题,工程里有一个文件,Java程序要读取这个文件,不采用绝对路径的方法,而使用相对路径来读取文件。以后迁移到其他机器上就不会出现读取文件失败的问题了。以下就介绍java如何读取相对路径的文件。

1.java project环境,使用java.io用相对路径读取文件的例子:
 *目录结构:
  DecisionTree
            |___src
                 |___com.decisiontree.SamplesReader.java
            |___resource
                 |___train.txt,test.txt
 *SamplesReader.java:
  String filepath="resource/train.txt";//注意filepath的内容;
  File file=new File(filepath);
  ……

 *我们留意filepath的内容,java.io默认定位到当前用户目录("user.dir")下,即:工程根目

录"D:\DecisionTree"下,因此,此时的相对路径(以user.dir为基路径的路径)为"resource/train.txt"

。这样,JVM就可以根据"user.dir"与"resource/train.txt"得到完整的路径(即绝对路

径)"D:\DecisionTree\resource\train.txt",从来找到train.txt文件。

 *注意:相对路径的起始处无斜杆"/";例如:
filepath="resource/train.txt";
而不是filepath="/resource/train.txt"; //error!

2、javaEE环境,使用Classloader用相对路径读取xml的例子:
 *参见之前写的文章“通过虚拟路径或相对路径读取一个xml文件,避免硬编码”。

 *内容如下:
 java使用相对路径读取xml文件:
一、xml文件一般的存放位置有三个:
1.放在WEB-INF下;
2.xml文件放在/WEB-INF/classes目录下或classpath的jar包中;
3.放在与解析它的java类同一个包中,不一定是classpath;

二、相对应的两种使用相对路径的读取方法:

方法一:(未验证)
将xml文件放在WEB-INF目录下,然后
程序代码:
InputStream is=getServletContext().getResourceAsStream( "/WEB-INF/xmlfile.xml" );

方法二:将xml文件放在/WEB-INF/classes目录下或classpath的jar包中,则可以使用ClassLoader的静态

方法getSystemResourceAsStream(String s)读取;
程序代码:
String s_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";
InputStream in=ClassLoader.getSystemResourceAsStream(s_xmlpath);

方法三:xml在随意某个包路径下:
String s_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";
ClassLoader classLoader=HotspotXmlParser.class.getClassLoader();
InputStream in=classLoader.getResourceAsStream(s_xmlpath);

必须通过ClassLoader来执行getResourceAsStream()方法。获取ClassLoader有两种方式:

        InputStream in = HotspotXmlParser.class.getClassLoader().getResourceAsStream(xmlfilename);
        InputStream in = new HotspotXmlParser().getClass().getClassLoader().getResourceAsStream(xmlfilename);
分享到:
评论

相关推荐

    java读取项目中的文件(src目录下)

    - 通常,Java项目有一个标准的目录结构,如`src/main/java`用于存放Java源代码,`src/main/resources`用于存放资源文件,如配置文件、图片或文本文件等。如果你的文件直接放在`src`目录下,可能意味着它是在源代码...

    java 读取资源文件

    本文将深入探讨如何使用Java读取资源文件,特别是properties类型的文件。 资源文件通常存储在项目的类路径(classpath)下,可以是.properties、.txt、.xml等形式,它们提供了与代码分离的配置选项。对于....

    java读取本地.db文件实例

    这个简单的示例展示了如何使用Java读取SQLite数据库中的数据,你可以根据自己的需求扩展这个基础,实现更复杂的业务逻辑。 在实际开发中,通常会使用ORM框架,如Hibernate或MyBatis,它们提供了更高级别的抽象,...

    java读写hdf5格式文件需要使用的库

    这里提供的jar文件`hdf5-3.3.2.jar`是Java接口库,它封装了对HDF5文件的操作,使得Java程序员可以通过调用Java API来实现读写HDF5文件。而`libjhdf.so.3.2.1`和`jhdf5.dll`分别是Linux和Windows平台的动态链接库,...

    通过java导入读取微软项目管理文件(配套代码和导入project文件)

    本篇文章将深入探讨如何使用Java来导入并读取微软的Project文件,同时也提供了一套相关的代码示例。 首先,我们要知道微软的Project文件通常是以.mpp格式存储的,这些文件包含了项目的详细信息,如任务、资源、时间...

    java读取局域网共享机器文件

    要实现Java读取局域网共享文件,主要涉及以下步骤和知识点: 1. **网络路径表示**:Java中,网络路径通常以UNC(Universal Naming Convention)格式表示,形如`\\hostname\shared_directory\file.txt`。这里`...

    java读取mpp文件

    总之,`mpxj`是Java开发者处理MPP文件的强大工具,它简化了与Microsoft Project文件的交互,让你能够在Java应用中轻松读取、修改和创建项目计划。在实际开发中,可以根据具体需求灵活运用这个库的功能,实现复杂的...

    java读取*.mdb文件数据

    在提供的"示例代码.txt"文件中,可能包含了一个使用UCanAccess进行分页读取的Java代码示例。这个示例可能包括了建立连接、设置分页参数、执行查询、处理结果集以及关闭资源的过程。打开这个文件,按照示例代码一步步...

    java 按顺序读取文件

    在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...

    java读取文件方法大全

    ### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...

    java如何读取文件

    本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的基础 在Java中,读取文件主要依赖于`java.io`包中的类,如`FileReader`和`BufferedReader`...

    java 读取远程共享文件

    java 读取远程共享文件,一个操作简单的读取远程资源的控件。

    java操作共享文件

    在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,可能需要访问网络上的文件系统资源。Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message ...

    java读取xps文件

    Java 读取 XPS 文件是将 XML Paper Specification (XPS) 文件内容提取并处理到 Java 应用程序中的过程。XPS 是一种基于 XML 的文件格式,主要用于创建、查看和打印文档,它与 PDF 类似,但主要在微软环境中使用。在 ...

    poi.zip java读取excel文件

    Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...

    java读取图片文件流

    java读取本地图片文件获取流!java读取本地图片文件获取流!

    详解Java读取Jar中资源文件及示例代码

    Java读取Jar中资源文件是一种常见的操作,在开发Java项目时,经常需要读取jar包中的资源文件。下面将详细介绍Java读取Jar中资源文件的实现代码和应用。 一、Java读取Jar中资源文件的必要性 在Java项目中,经常需要...

    Java读取资源文件时内容过长与换行的处理

    ### Java读取资源文件时内容过长与换行的处理 在Java开发过程中,经常会遇到需要读取资源文件的情况,比如配置文件、属性文件等。这些文件中的内容有时会非常长,或者为了提高可读性,需要进行换行处理。本文将详细...

    java读取配置文件

    如果你的项目使用了Spring框架,可以利用Spring的`Resource`接口来读取配置文件,它支持从类路径、文件系统、URL等多种来源加载资源: ```java Resource resource = new ClassPathResource("config.properties");...

    java读取TXT文件入库

    以上就是使用Java读取TXT文件并将其内容存入数据库的基本步骤。根据实际需求,可能还需要处理异常、优化性能(如批处理SQL)、验证数据格式等细节问题。在处理大规模数据时,考虑使用多线程或者流式处理来提高效率。

Global site tag (gtag.js) - Google Analytics