欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于读取jar包中的资源文件问题

程序员文章站 2022-04-28 09:24:11
...

本来以为很简单的一个问题,试了好久好久,其实测试的时候好多时候用法都是对的,只是因为没把别的错误排除,结果误导了,在这里记录下,以防患于未然,万一下次再遇到短时间内解决不了呢。

背景:

我们本地开发环境测试是没问题的,但到了服务器上,或者在本地打包成jar包时就是找不到资源文件。

解决关键是已文件流的方式读取。

这里提供两种解决方案:

1.直接以流方式读取

StringBuffer stringBuffer = new StringBuffer();
		try {
			InputStream stream = getClass().getClassLoader().getResourceAsStream("fdfs_client.conf");
			BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
			String line;
			while ((line = br.readLine()) != null) {
				stringBuffer.append(line);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("======================================="+stringBuffer.toString());

2.第一种方式不能满足,比如用一些工具类,人家就要求你传入文件路径,这时候咱也不能上来就重写工具类的方法吧。

try {
			String filePath = new ClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();;
			ClientGlobal.init(filePath);
		} catch (Exception e) {
			System.out.println("FastDFS Client Init Fail!");
		}

经过测试,两种方式本地和发布都没问题。

相关标签: java java spring