Java中的文件路径
【1】java中的基础路径
比如
File f=new File("a.txt");
上面这段代码会在哪里创建文件呢?
答案是:java 工程就是 C:\Users\root\Desktop\学习\lunwen\codes\nb_codes\cloud\a.txt
java web工程就是 D:\tomcat6\apache-tomcat-6.0.33\bin\a.txt
可以看见已经生成到tomcat下面呢
你可以使用下面的代码来获取根目录:
File f=new File(".");
【2】读取src下的文件
下图展示了示例目录结构:
如果要读取包内的demo.txt
应该是:
new FileInputStream("src/java/net/aviation/javaio/demo.txt");
*注意这里取决于你的IDE代码(netbeans将所有java代码放在了src/java文件夹下)
*注意初始没有/
或者:
ByteStreams.class.getResource("/net/aviation/javaio/demo.txt").getPath();
*注意如果上面获取的路径有中文,会自动转换为UTF-8的格式(这个跟你设定的工程编码有关,我的默认是UTF-8编码,就会有这个问题),这时可以使用URLDecoder进行转换:
*注意这里有/
String xString=ByteStreams.class.getResource("/net/aviation/javaio/demo.txt").getPath(); System.out.println("转换前:"+xString); xString=URLDecoder.decode(xString, "UTF-8"); System.out.println("转换后:"+xString); in = new FileInputStream(xString);
运行结果就是:
转换前:/C:/Users/root/Desktop/%e5%ad%a6%e4%b9%a0/lunwen/codes/nb_codes/cloud/build/web/WEB-INF/classes/net/aviation/javaio/demo.txt
转换后:/C:/Users/root/Desktop/学习/lunwen/codes/nb_codes/cloud/build/web/WEB-INF/classes/net/aviation/javaio/demo.txt
这样也可以获取到该文件。
这样读取前面的outer.txt 也就比较简单了