流读取一个txt文件,相对路径应该怎么写?

xdsaccp 2008-12-28 08:47:11
用 MyEclipse 建Web工程 想用相对路径.相对路径的默认值是多少??或者有什么方法能输出相对路径的默认值???


我要用流读取一个txt文件,代码如下.但是我写的是绝对路径,想用相对路径不知道怎么写
FileReader fr=new FileReader("D:/企业宣传网站/company/company/forbid.txt");
BufferedReader br=new BufferedReader(fr);
while(br.ready()){
str+=br.readLine();
}
fr.close();
...全文
2102 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
emmet 2012-07-12
  • 打赏
  • 举报
回复
Test.class.getResourceAsStream("Test.text");
Test为该类的类名
frozenfish 2010-08-09
  • 打赏
  • 举报
回复
有没有能把路径说的更详细点的啊。都是用其他的路径来代替了啊,如果写了绝对路径,项目移植到其他的位置不就出问题了
liangroger 2009-01-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xdsaccp 的回复:]
兄弟 根本没有 this.class.getResourceAsStream("/a.txt") ;这个方法啊
[/Quote]
是this.getClass().getResourceAsStream("/a.txt")
fys249931556 2008-12-28
  • 打赏
  • 举报
回复
你非要盯着这个相对路径干吗??
用getRealPath()不就行么?
getRealPath()获取的就是项目的目录。。有项目的目录不就有相对路径了?
然后写个读取的工具类类就行了。
public String txtReader(String path){

}
path写用getRealPath获取的路径,然后将读取后的内容返回给你。。
Looking_Glass 2008-12-28
  • 打赏
  • 举报
回复
个人认为你可以先用String path = Request.getcontextPath()获得WEB项目的根路径!然后你喜欢放在WEB项目的哪个文件夹下都可以!FileReader fr = new FileReader(path+"/你放的文件夹/你的文件名");
whuzjf1985 2008-12-28
  • 打赏
  • 举报
回复
D:/企业宣传网站/company/company/forbid.txt 这个是绝对路径 那么它的相对路径就是相对与你读取它的这个JAVA源文件的路径
比如你的JAVA源文件在D盘的根目录的话 哪么相对路径就是/企业宣传网站/company/company/forbid.txt
就是这样 如果你的JAVA文件在D:/WEB下的话 哪么相对路径就是 ../企业宣传网站/company/company/forbid.txt
MEjavaTO 2008-12-28
  • 打赏
  • 举报
回复
刚开始学吧,好好看看core java这本书

系统的学习一下,对你又很大的帮助

祝你也能成为SCEA
MEjavaTO 2008-12-28
  • 打赏
  • 举报
回复
java.lang.Class这个类的方法
xdsaccp 2008-12-28
  • 打赏
  • 举报
回复
兄弟 根本没有 this.class.getResourceAsStream("/a.txt") ;这个方法啊
xdsaccp 2008-12-28
  • 打赏
  • 举报
回复
文件位置放哪知道了,FileReader fr=new FileReader("");这个参数应该写什么啊?? 你给的那两个方法看不懂
其实问题没那么复杂吧 MyEclipse 建一个一般的工程 比如建在这里:D:\aa\bb 工程名叫bb 我把a.txt文件放到D:\aa\bb\a.txt这里
想读a.txt就应该是:
FileReader fr=new FileReader("a.txt");
BufferedReader br=new BufferedReader(fr);
while(br.ready()){
str+=br.readLine();
}
fr.close();
参数直接写a.txt就行了 因为默认路径就是D:\aa\bb\
但是现在建的是WEB 工程 就不知道这参数应该写啥了
MEjavaTO 2008-12-28
  • 打赏
  • 举报
回复
WEB-INF文件夹下有一个classes文件夹

就把文件放到这个文件夹底下,再用Class类的这两个方法

InputStream is = this.class.getResourceAsStream("/a.txt")

int mete = -1;
byte[] datas = new byte[1024];

while((mete=is.read(datas,0,1024))!=-1){
str += str + new String(datas,0,mete);
}

is.close();
MEjavaTO 2008-12-28
  • 打赏
  • 举报
回复
用classpath 就是把文件放到class文件的根目录

比如说你的类包是 com.tenio.ban
你就把 文件放到 com的上一层目录下

用Class类的一个方法可以的到文本流

URL getResource(String name)
查找带有给定名称的资源。
InputStream getResourceAsStream(String name)
查找具有给定名称的资源。
查帮助这两个方法可能对你 有用
xdsaccp 2008-12-28
  • 打赏
  • 举报
回复
我是用MyEclipse 建的WEB工程啊

FileReader fr=new FileReader("");
BufferedReader br=new BufferedReader(fr);
while(br.ready()){
str+=br.readLine();
}
fr.close();
能告诉我 txt文件应该放到哪? new FileReader("")的参数应该怎么写 能具体点吗??
MEjavaTO 2008-12-28
  • 打赏
  • 举报
回复
如果你是个简单的java程序 ,就是java.exe的当前路径

如果是tomcat,就是 %tomcat_home%\bin
xdsaccp 2008-12-28
  • 打赏
  • 举报
回复
2搂的 我的txt文件 就是跟着工程一起走的 ,你说的运行程序的路径 是哪??用classpath的什么方法获取???
xdsaccp 2008-12-28
  • 打赏
  • 举报
回复
没看懂 能简单点吗??我就知道 相对路径是以哪个路径为准?或者有方法能得出默认路径是多少
MEjavaTO 2008-12-28
  • 打赏
  • 举报
回复
window下 .代表当前运行程序的路径,注意是运行程序。不是当前类的路径

使用classpath用class读取资源我感觉比较合适,但是有要求就是你这个文本要和工程一起走。

还有就是用配置文件来记录文件的前边的路径,这样就可以随意放置文件了,改变路径的时候修改一下配置文件文件就ok了
MuBeiBei 2008-12-28
  • 打赏
  • 举报
回复
private String properties_filename = "jdbc_connection_options.properties";

Connection get_conn_from_jndi() {

Connection conn = null;

try {

Properties p = new Properties();

p.load(this.getClass().getResourceAsStream(
"/" + properties_filename));

System.out.print("jndi的名字是:" + p.getProperty("jndi_name"));

Context envContext = (Context) new InitialContext()
.lookup("java:/comp/env");

DataSource ds = (DataSource) envContext.lookup(p
.getProperty("jndi_name"));

conn = ds.getConnection();

System.out.println(" 数据源ds对象引用的值为:" + ds);

} catch (NamingException e) {

e.printStackTrace();
} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {

e.printStackTrace();
} catch (SQLException e) {

e.printStackTrace();
}

return conn;
}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧