相对路径读文件问题,比较急

chaoliu1024 2011-09-28 04:13:54
从硬盘读一个.txt文件。
ReadFile rf = new ReadFile("D:\\Workspaces\\MyEclipse 9\\ajax_listener\\src\\ReadFile\\config.txt"); //这是绝对路径写法,可以用

ReadFile rf = new ReadFile("./src/ReadFile/config.txt"); //这是我试的两种相对路径,但是都读不出来
ReadFile rf = new ReadFile("src/ReadFile/config.txt");


要读文件在工程中位置
...全文
351 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaoliu1024 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ioe_gaoyong 的回复:]
给你回复的方法你试了没?
看了你这个代码,还给个法子
将config.txt文件放在工程根目录下,然后FileReader fr=new FileReader("config.txt")
你试试有效么
引用 15 楼 zhzxlc_06 的回复:
ReadFile类

Java code
public class ReadFile {

private String fileN……
[/Quote]没有效果的。。。
  • 打赏
  • 举报
回复
相对路径是相对于 System.getProperty("user.dir"); 目录的。
fainfy 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ioe_gaoyong 的回复:]
给你回复的方法你试了没?
看了你这个代码,还给个法子
将config.txt文件放在工程根目录下,然后FileReader fr=new FileReader("config.txt")
你试试有效么
引用 15 楼 zhzxlc_06 的回复:
ReadFile类

Java code
public class ReadFile {

private String fileN……
[/Quote]

按照你的写法在eclipse中放到ajax_listener目录下面是可以获取到config.txt的。
不过换了环境一样有问题。

ReadFile.class.getResource("config.txt");
ReadFile.class.getResource("/ReadFile/config.txt");
ReadFile.class.getClassLoader().getResource("ReadFile/config.txt");

通过上面的方式都可以获取到config.txt文件,而不受环境约束。
_了凡_ 2011-09-29
  • 打赏
  • 举报
回复
楼主,你那个文件夹ReadFile文件夹放的位置有不对,应该将其放到和
src平级的地方,然后测试程序:

File file = new File("./ReadFile/xxx.txt");
if (file.exists()) {
System.out.println("Yes, file exists!");
} else {
System.out.println("Sorry, file doesn't exist.");
}

我的会输出Yes, file exists!

你再看看。
风尘中国 2011-09-29
  • 打赏
  • 举报
回复

给你回复的方法你试了没?
看了你这个代码,还给个法子
将config.txt文件放在工程根目录下,然后FileReader fr=new FileReader("config.txt")
你试试有效么
[Quote=引用 15 楼 zhzxlc_06 的回复:]
ReadFile类

Java code
public class ReadFile {

private String fileName;

public ReadFile(String fileName)
{
this.fileName = fileName;
}

public Strin……
[/Quote]
chaoliu1024 2011-09-29
  • 打赏
  • 举报
回复
ReadFile类
public class ReadFile {

private String fileName;

public ReadFile(String fileName)
{
this.fileName = fileName;
}

public String[] ReadSqlConfig()
{
try
{
int paramCount;
String tempLine;
File file;
BufferedReader buffer = null;
file = new File(fileName);
buffer = new BufferedReader(new FileReader(file));
tempLine = buffer.readLine();
paramCount = Integer.parseInt(tempLine.split(":")[1]);
String[] bufferStr = new String[paramCount];
for(int i= 0 ; i < paramCount;i++)
{
bufferStr[i] = (buffer.readLine()).split(":")[1];
}
return bufferStr;

}
catch(IOException e)
{
e.printStackTrace();
return null;
}
}
}
fainfy 2011-09-28
  • 打赏
  • 举报
回复

ReadFile.class.getResource("config.txt")
大蚂虾 2011-09-28
  • 打赏
  • 举报
回复
感觉你问的问题都有毛病

试试这个
String path = this.getClass().getResource("config.txt").getPath();
ReadFile rf = new ReadFile(path);
h_zai888 2011-09-28
  • 打赏
  • 举报
回复
string upload_path = Server.MapPath(uploadFolder);
获取服务器路径 然后private string uploadFolder = "../ReadFile/";
台城柳月 2011-09-28
  • 打赏
  • 举报
回复
String path = this.getClass().getClassLoader().getResource("/").getPath();
ReadFile rf = new ReadFile(path.substring(0,path.lastIndexOf("/"))+"/config.txt");


手写的,没试过,应该可以
huntor 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ioe_gaoyong 的回复:]
是么,为什么放在工程根目录下每次都能到这个文件?

引用 4 楼 huntor 的回复:
引用 3 楼 ioe_gaoyong 的回复:

怀疑ReadFile是不是你自己实现的一个类,如果是那么跟你这个类构造器相关
标准的IO提供FileReader
将config.txt放到工程根目录下后,可以
FileReader fr=new FileReader("config.txt"……
[/Quote]
那是你在eclipse里启动的程序。
你在命令行下,在别的目录使用 java -classpath {classesfilepath} MainClass 运行试试
风尘中国 2011-09-28
  • 打赏
  • 举报
回复
默认情况下System.getProperty("user.dir")
获得的值就是工程的根目录,所以这样做也是一种可行的方案
虽然不是最安全的方案

[Quote=引用 7 楼 ioe_gaoyong 的回复:]
是么,为什么放在工程根目录下每次都能到这个文件?


引用 4 楼 huntor 的回复:
引用 3 楼 ioe_gaoyong 的回复:

怀疑ReadFile是不是你自己实现的一个类,如果是那么跟你这个类构造器相关
标准的IO提供FileReader
将config.txt放到工程根目录下后,可以
FileReader fr=new FileReader("config.tx……
[/Quote]
huntor 2011-09-28
  • 打赏
  • 举报
回复
把ReadFile。java贴出来?!
风尘中国 2011-09-28
  • 打赏
  • 举报
回复

是么,为什么放在工程根目录下每次都能到这个文件?

[Quote=引用 4 楼 huntor 的回复:]
引用 3 楼 ioe_gaoyong 的回复:

怀疑ReadFile是不是你自己实现的一个类,如果是那么跟你这个类构造器相关
标准的IO提供FileReader
将config.txt放到工程根目录下后,可以
FileReader fr=new FileReader("config.txt")

这种是相对于System.getProperty("user.dir")
[/Quote]
aotian16 2011-09-28
  • 打赏
  • 举报
回复
ReadFile 你自己写的类吧
看一下怎么实现的不就知道了吗
huntor 2011-09-28
  • 打赏
  • 举报
回复
如果config.txt这个文件确定后就不再变动,使用Class/ClassLoader的getResourceAsStream读去。导出时可以放到jar文件里。
huntor 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ioe_gaoyong 的回复:]

怀疑ReadFile是不是你自己实现的一个类,如果是那么跟你这个类构造器相关
标准的IO提供FileReader
将config.txt放到工程根目录下后,可以
FileReader fr=new FileReader("config.txt")
[/Quote]
这种是相对于System.getProperty("user.dir")
风尘中国 2011-09-28
  • 打赏
  • 举报
回复
怀疑ReadFile是不是你自己实现的一个类,如果是那么跟你这个类构造器相关
标准的IO提供FileReader
将config.txt放到工程根目录下后,可以
FileReader fr=new FileReader("config.txt")
huntor 2011-09-28
  • 打赏
  • 举报
回复
ReadFile类怎么定位文件?

风尘中国 2011-09-28
  • 打赏
  • 举报
回复
试一下把config.txt放到工程根目录下,然后
ReadFile rf = new ReadFile("config.txt");

62,614

社区成员

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

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