首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

文件加载路径有关问题

2012-10-06 
文件加载路径问题? 项目中常常需要加载资源文件或者进行文件读写操作,许多人都会遇到文件找不到的问题,很

文件加载路径问题

? 项目中常常需要加载资源文件或者进行文件读写操作,许多人都会遇到文件找不到的问题,很多情况下这是因为路径不对产生的。以下是我总结的解决办法,不足之处,请指正。

? 工程目录结构如下:

FilePathDemo

?--/src

?? --/com.filepathdemo.test

????? FilePathDemo.java

????? test.txt

?? --/test.txt

?

test.txt(com.filepathdemo.test中)?

package com.filepathdemo.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class FilePathDemo {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException {BufferedReader br = null;String line = null;// 加载当前类所在包中文件InputStream istream1 = FilePathDemo.class.getResourceAsStream("test.txt");// outputbr = new BufferedReader(new InputStreamReader(istream1, "UTF-8"));while ((line = br.readLine()) != null) {System.out.println(line);}if (br != null) {br.close();}// 加载工程根目录(src)下文件InputStream istream2 = getResourceAsStream("test.txt");// outputbr = new BufferedReader(new InputStreamReader(istream2, "UTF-8"));line = null;while ((line = br.readLine()) != null) {System.out.println(line);}if (br != null) {br.close();}}/*** * 从程序执行路径根目录加载资源 *  * @param resource *            文件名 * @return */protected static InputStream getResourceAsStream(String resource) {String stripped = resource.startsWith("/") ? resource.substring(1): resource;InputStream stream = null;ClassLoader classLoader = Thread.currentThread().getContextClassLoader();if (classLoader != null) {stream = classLoader.getResourceAsStream(stripped);}return stream;}}

?

运行结果:

包目录test.txt
根目录test.txt

热点排行