黑马程序员技术交流社区
标题:
为什么我这个程序找不到文件
[打印本页]
作者:
admin
时间:
2011-7-14 11:25
标题:
为什么我这个程序找不到文件
已经将建立好的Helpmsg.txt放在跟.java文件同一目录下,下面是.java文件读取文件的代码,编译时发生了FileNotFoundException,请问是为何?
File inFile=new File("Helpmsg.txt");
FileInputStream inStream=new FileInputStream(inFile);
作者:
匿名
时间:
2011-7-14 12:21
找不到"Helpmsg.txt"
一定要输入文件的绝对路径
作者:
匿名
时间:
2011-7-14 12:29
标题:
只封装成了对象
File inFile=new File("Helpmsg.txt");
inFile.createNewFile();
FileInputStream inStream=new FileInputStream(inFile); inFile.createNewFile();
在中间加上一句话就可以了。
File inFile=new File("Helpmsg.txt");
这句话只是把"Helpmsg.txt"封装成一个对象,并没有在硬盘上创建文件。
作者:
匿名
时间:
2011-7-14 12:36
编译器是从当前编译的目录开始查找配置文件的,所以一定要相对于要加载类的相对或绝对路径
InputStream ips=ReflectTest2.class.getClassLoader().getResourceAsStream("com/it315/day1/config.properties");
InputStream ips=ReflectTest2.class.getResourceAsStream("resources/config.properties");
InputStream ips=ReflectTest2.class.getResourceAsStream("/com/it315/day1/resources/config.properties");
作者:
匿名
时间:
2011-7-14 12:44
各述已见很好,已经给分了,加油
作者:
匿名
时间:
2011-7-14 13:00
哈哈,谢谢,一分到手喽,吃中饭去了。
作者:
匿名
时间:
2011-7-14 13:20
File inFile=new File("Helpmsg.txt");
并没有创建对象
想创建文件用这个方法试试
inFile.createNewFile();
作者:
匿名
时间:
2011-7-15 14:16
定义FileInputStream一定要用try包围,
改成如下代码试试:
File inFile = new File("Helpmsg.txt");
inFile.createNewFile();
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream(inFile);
} catch(FileNotFoundException ex) {
ex.printStackTrace();
}
作者:
匿名
时间:
2011-7-15 14:59
首先,编译器只能发现语法错误和静态语义错误。 FileNotFoundException异常只能在运行的时候发现,因此您说错了。
然后,若您在CMD中运行程序,则代码中的相对路径是相对于 “CMD的当前路径来说的”,而不是“.java”文件所在的路径。
验证步骤:
第一,在D盘建立一个名为test的文件夹。
第二,在test内建立一个“Helpmsg.txt” 和一个“Demo.java”文件。
第三,打开“Helpmsg.txt”,在其内写入一个字符串“Hello World!!”,并保存退出。
第四,打开“Demo.java”,写入如下代码:[code=java]import java.io.*;
public class Demo{
public static void main(String[] args)throws Exception{
File inFile=new File("Helpmsg.txt");
FileInputStream inStream=new FileInputStream(inFile);
int temp;
while((temp = inStream.read()) != -1){
System.out.print((char)temp);
}
inStream.close();
}
}[/code]第五,想办法编译这个“Demo.java”文件。
第六,把“;D:\test”,放到您计算机的classpath变量的最后面。若您的计算机没有classpath变量,则新建一个即可。classpath变量和path变量在同一个地方。
第七,关闭所有已经打开的cmd,然后再重新开一个新的。
第八,进入D盘根目录即可。
第九,输入 java Demo ,观察程序执行结果:
Exception in thread "main" java.io.FileNotFoundException: Helpmsg.txt (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at Demo.main(Demo.java:5)
第十,进入“D:\test”,中输入 java Demo ,则程序输出“Hello World!!” 。
作者:
匿名
时间:
2011-7-17 17:27
file 方法就是这点不好,还得用绝对路径
“ ReflectTest2.class.getResourceAsStream("resources/config.properties"); ”
还是反射好用!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2