首先,编译器只能发现语法错误和静态语义错误。 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!!” 。 |