`
ForgiDaved
  • 浏览: 56568 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA读取资源文件的方法整理

 
阅读更多
    无论是java app应用,还是java web应用,基本都会用到读取目标文件中的资源文件,以下整理出常用的资源读取方法,备忘:
/**
	 * Returns the URL of the resource on the classpath
	 * 
	 * @param resource
	 *            The resource to find
	 * @throws IOException
	 *             If the resource cannot be found or read
	 * @return The resource
	 */
	public static URL getResourceURL(String resource) throws IOException {
		URL url = null;
		ClassLoader loader = Resources.class.getClassLoader();
		if (loader != null)
			url = loader.getResource(resource);
		if (url == null)
			url = ClassLoader.getSystemResource(resource);
		if (url == null)
			throw new IOException("Could not find resource " + resource);
		return url;
	}
	
	/** Returns the URL of the resource on the classpath
	    * @param loader The classloader used to load the resource
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static URL getResourceURL(ClassLoader loader, String resource) throws IOException {
	     URL url = null;
	     if (loader != null) url = loader.getResource(resource);
	     if (url == null) url = ClassLoader.getSystemResource(resource);
	     if (url == null) throw new IOException("Could not find resource " + resource);
	     return url;
	 }

	/**
	 * Returns a resource on the classpath as a Stream object
	 * 
	 * @param resource
	 *            The resource to find
	 * @throws IOException
	 *             If the resource cannot be found or read
	 * @return The resource
	 */
	public static InputStream getResourceAsStream(String resource)
			throws IOException {
		InputStream in = null;
		ClassLoader loader = Resources.class.getClassLoader();
		if (loader != null)
			in = loader.getResourceAsStream(resource);
		if (in == null)
			in = ClassLoader.getSystemResourceAsStream(resource);
		if (in == null)
			throw new IOException("Could not find resource " + resource);
		return in;
	}
	
	/** Returns a resource on the classpath as a Stream object
	    * @param loader The classloader used to load the resource
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static InputStream getResourceAsStream(ClassLoader loader, String resource) throws IOException {
	     InputStream in = null;
	     if (loader != null) in = loader.getResourceAsStream(resource);
	     if (in == null) in = ClassLoader.getSystemResourceAsStream(resource);
	     if (in == null) throw new IOException("Could not find resource " + resource);
	     return in;
	 }
	 
	 /** Returns a resource on the classpath as a Properties object
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static Properties getResourceAsProperties(String resource)
	       throws IOException {
	     Properties props = new Properties();
	     InputStream in = null;
	     String propfile = resource;
	     in = getResourceAsStream(propfile);
	     props.load(in);
	     in.close();
	     return props;
	}
	
	 /** Returns a resource on the classpath as a Properties object
	    * @param loader The classloader used to load the resource
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static Properties getResourceAsProperties(ClassLoader loader, String resource)
	       throws IOException {
	     Properties props = new Properties();
	     InputStream in = null;
	     String propfile = resource;
	     in = getResourceAsStream(loader, propfile);
	     props.load(in);
	     in.close();
	     return props;
	 }
分享到:
评论

相关推荐

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

    在Java编程语言中,从网络获取文件是一项常见的任务,它涉及到网络编程和I/O操作。以下是一些关于如何使用Java从网络下载文件的关键知识点: 1. **URL类**:Java中的`java.net.URL`类是表示统一资源定位符的对象,...

    java 获取usb外接设备信息整理。

    在Java编程环境中,获取USB外接设备的信息是一项重要的任务,特别是在物联网(IoT)和设备控制应用中。本文将深入探讨如何使用Java来检测、识别并获取USB设备的相关信息。 首先,我们需要理解Java中处理USB设备的基本...

    JAva资源网站大全

    以下是从给定文件中整理出的Java资源网站大全,这些网站不仅提供了丰富的学习资料,还涵盖了最新的技术动态、实践案例以及开发者社区,对Java学习者来说极为宝贵。 ### 1. Sun Developer Network (SDN) Home 网址...

    java 删除某行和读写txt文件

    在Java中,如果需要从文本文件中删除特定行,实际上并没有直接提供这样的方法。通常的做法是先将文件中的所有内容读取到内存中,然后根据需要过滤掉不需要的行,最后再将处理后的结果写回原文件或者新的文件中。下面...

    JAVA面试整理,吐血整理

    在给定文件的内容中,我们可以提取出关于Java面试的多个重要知识点,以下是针对提供的部分内容的详细知识点: 1. Java的“无关性”特性: - Java的宣传口号“Write once, run anywhere”体现了Java的平台无关性,...

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

    这个名为"Java从网络取得文件Java实用源码整理learns"的资源可能包含了一系列用于学习和实践如何使用Java从互联网下载文件的代码示例。下面我们将详细探讨相关的Java知识点。 1. **URL类**: Java中的`java.net....

    java 常用方法整理

    在Java编程中,掌握一些常用的方法对于提升开发效率至关重要。以下是对标题和描述中提到的一些关键知识点的详细解释: 1. **日期时间处理**:Java提供了`java.util.Date`和`java.time`包来处理日期和时间。`Date`类...

    Hive内部表合并小文件Java程序

    4. **读取和写入数据**:遍历获取的文件列表,使用`FSDataInputStream`逐个读取小文件内容,并通过`SequenceFile.Writer`写入到新创建的SequenceFile中。 5. **更新Hive元数据**:一旦文件合并完成,你需要更新Hive...

    java_常用jar包整理.rar

    本压缩包"java_常用jar包整理.rar"显然是一份集合了Java开发中常用库的资源,可以帮助开发者快速搭建项目环境或解决特定功能需求。以下将详细解析这些常见的jar包及其在Java开发中的作用。 1. **Apache Commons**: ...

    java常用的工具类整理28个

    6. **java.io.File**:文件操作类,可以创建、删除、重命名文件,获取文件属性等。 7. **java.nio.file.***(Java 7及以上):非阻塞I/O框架,包括`Path`、`Files`、`FileSystem`等,提供了更高效的文件操作。 8. ...

    java的相关整理

    这份“java的相关整理”涵盖了Java的基础操作,对于初学者或不熟悉Java编译环境的人来说是一份宝贵的资源。以下是对Java基础知识的详细说明: 1. **Java安装与环境配置**:在开始编写Java程序前,你需要安装Java ...

    Java从网络上下载数据Java实用源码整理learns

    这个“Java从网络上下载数据Java实用源码整理learn”集合提供了一些源码示例,可以帮助开发者理解并实现相关功能。下面将详细探讨相关知识点。 1. **URL与URLConnection** - `java.net.URL` 类是Java提供的用于...

    格式化格式化txt,读取txt文件

    在Java编程语言中,读取TXT文件是一项基本且常用的操作。通常,我们使用`BufferedReader`类配合`FileInputStream`来实现这一目标。具体步骤包括: 1. 创建一个指向TXT文件的`FileInputStream`对象。 2. 使用`...

    java+poi+excel读取写入等操作所有jar(最新支持excel2013)Java实用源码整理learns

    本资源包集合了使用Java进行Excel读取、写入等操作所需的全部jar文件,且这些jar文件已更新至最新版本,支持Excel 2013的格式。以下是对这些操作的详细说明: 一、读取Excel 1. 导入必要的POI库:首先,你需要导入...

    Java 上传方法的整理

    下面我们将深入探讨Java中的文件上传方法以及`FileManagerAction` 类可能涉及的关键知识点。 首先,Java文件上传主要依赖于Servlet API,特别是`Part` 接口,这是在Servlet 3.0及以上版本中引入的,用于处理...

    java私塾学习笔记整理

    Java中没有析构方法的概念,但可以使用`finalize()`方法进行资源清理。 #### 第五章:数组和枚举 **一、数组基础** 数组是一种存储同类型数据的容器。数组的创建和初始化方式多样,支持一维数组、多维数组等。 *...

    Java开发技术大全源码整理

    "下载及使用说明.txt"文件很可能是提供下载和解压指南的文档,它可能包括了获取资源的具体步骤、解压方法以及如何运行或导入源码到开发环境中的说明。遵循这些指导,开发者可以顺利地获取并利用这些源码进行学习。 ...

    JAVA核心知识点整理——java自学资料.rar

    这份"JAVA核心知识点整理——java自学资料.rar"包含了一份详细的Java学习资源,旨在帮助已经具备一定Java基础知识的开发者进一步提升技能,深入理解Java的底层机制。以下是这份资料可能涵盖的一些核心知识点和学习...

    Java+Web开发实践教程ppt课件Java实用源码整理learns

    【压缩包子文件的文件名称列表】中的"下载及使用说明.txt"很可能包含了获取和使用课程资料的具体步骤,学习者应仔细阅读,以确保能正确地访问和利用所有提供的资源。"更多Java资料学习.url"可能是一个链接,指向更多...

    140个java源码实例源码整理

    "140个java源码实例源码整理"这个资源集合显然提供了大量的Java编程示例,可以帮助初学者和经验丰富的开发者深入理解Java的核心概念以及实际应用。 首先,Java源码实例是学习编程的重要途径,它们提供了实际的代码...

Global site tag (gtag.js) - Google Analytics