⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resourcereader.java

📁 本代码以J2SE 5.0为开发环境
💻 JAVA
字号:
package book.io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

import book.basic.HelloWorld;

/**
 *从jar包中读资源文件,如配置文件等
 */
public class ResourceReader {

	/**
	 * 第一种方法读Jar包中的资源信息,首先读取资源的URL,再读取URL对应的文件信息
	 * @param class1	类
	 * @param fileName	文件的相对路径
	 */
	public static void readFromJarA(Class class1, String fileName) {
		//getResource得到一个URL对象来定位资源
		URL fileURL = class1.getResource(fileName);
		System.out.println("资源的URL: " + fileURL);
		try {
			//打开fileURL对应的文件流
			InputStream inputstream = fileURL.openStream();
			BufferedReader bufferedreader = new BufferedReader(
					new InputStreamReader(inputstream));
			String str;
			
			while ((str = bufferedreader.readLine()) != null) {
				System.out.println(str);
			}
			inputstream.close();
		} catch (IOException ioexception) {
			ioexception.printStackTrace();
		}
	}
	/**
	 * 第二种方法读Jar包中的资源信息。
	 * @param class1	类
	 * @param fileName	文件的相对路径
	 */
	public static void readFromJarB(Class class1, String fileName) {
		//getResourceAsStream取得该资源输入流的引用,保证程序可以从正确的位置抽取数据
		InputStream inputstream = class1.getResourceAsStream(fileName);
		if (inputstream != null) {
			BufferedReader bufferedreader = new BufferedReader(
					new InputStreamReader(inputstream));
			String str;
			try {
				while ((str = bufferedreader.readLine()) != null) {
					System.out.println(str);
				}
				inputstream.close();
			} catch (IOException ioexception) {
				ioexception.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) {
		Class class1 = HelloWorld.class;
		//如果文件相对路径前没有"/",则表示相对于该class文件的位置
		String filePath = "config0.conf";
		ResourceReader.readFromJarA(class1, filePath);
		System.out.println();
		filePath = "Resources/config1.conf";
		ResourceReader.readFromJarB(class1, filePath);
		System.out.println();
		
		//如果在文件相对路径前加上 "/",则表示相对于jar文件的根目录位置。
		//如"/Resources"则表示jar文件的第一层目录,目录为Resources
		filePath = "/book/basic/Resources/config2.conf";
		ResourceReader.readFromJarA(class1, filePath);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -