快速业务通道

Java相对路径读取文件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

Java相对路径读取文件

时间:2011-12-08 51cto博客 leizhimin

不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的。

项目的文件夹结构:

repathtest ├─src │    └─com │            └─lavasoft │                    ├─test │                    └─res ├─doc

1、在Java开发工具的project中使用相对路径

在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了。

创建文件的写法是:

File f = new File("src/com/lavasoft/res/a.txt"); File f = new File("doc/b.txt");

注意:

路径不以“/”开头;

脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此,但我见到的都是这样的。

2、通过CLASSPATH读取包内文件

读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:

InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

有了字节流,就能读取到文件内容了。

注意:

这里必须以“/”开头;

Java?斤揃抄響函猟周(2)

扮寂:2011-12-08 51cto鴬人 leizhimin

3、心心頼屁議霞編旗鷹

package com.lavasoft.test; import java.io.*; /** * Java響函?斤揃抄議猟周 * * @author leizhimin 2010-1-15 10:59:43 */ public class ReadFile {          public static void main(String[] args) {                  readTextA_ByClassPath();                  readTextA_ByProjectRelativePath();                  readTextB_ByProjectRelativePath();          }          /**           * 宥狛垢殻?斤揃抄響函?淫坪?猟周?廣吭音參“/”蝕遊           */          public static void readTextA_ByProjectRelativePath() {                  System.out.println("-----------------readTextA_ByProjectRelativePath---------------------");                  File f = new File("src/com/lavasoft/res/a.txt");                  String a = file2String(f, "GBK");                  System.out.println(a);          }          /**           * 宥狛垢殻?斤揃抄響函?淫翌?猟周?廣吭音參“/”蝕遊           */          public static void readTextB_ByProjectRelativePath() {                  System.out.println("-----------------readTextB_ByProjectRelativePath---------------------");                  File f = new File("doc/b.txt");                  String b = file2String(f, "GBK");                  System.out.println(b);          }          /**           * 宥狛CLASSPATH響函淫坪猟周?廣吭參“/”蝕遊           */          public static void readTextA_ByClassPath() {                  System.out.println("---------

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号