作者TonyQ (骨头)
看板java
标题Re: [问题] java.util.Properties的问题
时间Fri Mar 16 23:06:02 2007
※ 引述《ogre0403 (肚子饿)》之铭言:
: 我用Properties来读我的设定档,可是很奇怪的是我只打档名会出现
: FileNotFoundException,
: 例如:props.load(new FileInputStream("table.prop"));
: 可是假如我打出完整的路径就可以了
: 例如:
: props.load(new FileInputStream
: ("D:\\JAVA\\workspace\\Project_test\\src\\table.prop"));
: 我是用eclipse,property档和其他档都放在同个目录下,
: 有人有遇过这个奇怪的问题吗
这和Properties没关系吧。
你应该有发现你处理的class叫做 FileInputStream,
然後也应该去查一下这个class的API试试看能不能碰碰运气。
我是这麽做了,然後我发现这段话。
Creates a FileInputStream by opening a connection to an actual file,
the file named by the path name name in the file system. A new
FileDescriptor object is created to represent this file connection.
First, if there is a security manager, its checkRead method is
called with the name argument as its argument.
If the named file does not exist, is a directory rather than a
regular file, or for some other reason cannot be opened for reading
then a FileNotFoundException is thrown.
(引用自)
http://0rz.tw/0f2sN
後来你发现了打出
绝对路径就可以了。
所以这表示
%default%/table.prop != D:/JAVA/.../src/table.prop
然後我们又知道可以自己create出一个File物件来确认看看。
因为FileStream从API也就是做这件事情嘛!
於是我写下
File f_relative=new File("table.prop");
System.out.println(f_relative.getAbsolutePath());
然後我再写下
File f_absolute=
new File("D:/JAVA/workspace/Project_test/src/table.prop");
System.out.println(f_absolute.getAbsolutePath());
所以我可以合理推论你应该会知道原因了,but who knows? XD
或者更直接一点的方式
System.out.println(System.getProperty("user.dir"));
#取自骨话连篇 之『找出问题 你也可以』
--
btw,一般来说绝对路径的正确性比较高。
--
String temp="relax"; | Life just like programing
while(buringlife) String.forgot(temp); | to be right or wrong
while(sleeping) brain.setMemoryOut(); | need not to say
stack.push(life.running); | the compiler will
stack.push(scouting.buck()); | answer your life
stack.push(bowling.practice()); | Bone
everything
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.27.68