java读文件 路径不对

我做的是ssh,但是在servlet中如果要去读文件,和在jsp中识别文件的路径不太一样。

 

我就是在servlet中读文件的,然后一直说路径不对。

 

后来终于在我老大的帮助下,他发给了我一个极其强悍的语句如下:

 

 

this.getClass().getClassLoader().getResource("/").getPath()+"conf/ftpconfig.properties"

  或者用静态的类名:

 

UrgentFileUtil.class.getClassLoader().getResource("/").getPath()+"conf/ftpconfig.properties"

这句话在console打印一下,可以看到它的完整路径,是包括磁盘路径的。

打印出来如下:

 

/D:/workspace/yc/njpatientcare/huishan/WEB-INF/classes/conf/ftpconfig.properties
 

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

 

假设上面是真理的话,那下面的测试,让我大跌眼镜:

 

package sh.bs.home.testSpace;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

public class testSpacePath {

	public static void main(String[] args) {
		new testSpacePath().readFile();
	}
	
	
	/**
	 * getResource, 不用classLoader
	 */
	public  void readFile(){
		
		try{
//			String test=testSpacePath.class.getResource("").toString();
			//only getResource
			String test=testSpacePath.class.getResource("").getPath();			
			System.out.println("only getResource="+test);
			
			//getResource_classLoader_nullString
			String getResource_classLoader_nullString=testSpacePath.class.getClassLoader().getResource("").getPath();
			System.out.println("getResource_classLoader_nullString="+getResource_classLoader_nullString);
			
			
			
			
			String getResource_classLoader_rootDir=testSpacePath.class.getClassLoader().getResource("/").getPath();
			System.out.println("getResource_classLoader_rootDir="+getResource_classLoader_rootDir);
			
			
			
			
			String testtext=test+"1.txt";
			testtext = java.net.URLDecoder.decode(testtext, "UTF-8");
			
			BufferedReader br = new BufferedReader(
					new InputStreamReader(new FileInputStream(testtext)));
			
			System.out.println("value="+br.readLine());
			
		}catch(Exception ex){
			ex.printStackTrace();
		}
		
	}
	
	
}
 

 

 

我一共试了三个方法,偏偏我们老大给的强悍的方法通不过。

 

所以这种关于路径的东西,还是多试试吧。

 

路径的原理就是根据编译过后的class路径去获得文件的路径。

 

 

 

 

一般常用的路径收集如下:

 

//		System.out.println(System.getProperty("user.dir"));//important
		
//		System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
//		System.out.println(FTPFileUtil.class.getResource(""));  
//		System.out.println(FTPFileUtil.class.getResource("/"));

 参考URL:http://laorer.iteye.com/blog/118088

http://topic.csdn.net/u/20110813/10/47635c98-e3f3-4b39-bf9d-79081c1f55f4.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值