2015-10-18 90 views
1

我在尝试在我的D驱动器中读取我的文件abc.txt时出现错误。 即使我试图格式为: “d:\ EDU \ java的\的abc.txt”Java异常错误I/O

这里是我的代码:

package javapro; 

import java.io.FileInputStream; 

public class office { 

    public static void main (String[] args)throws Exception { 
     FileInputStream apple = new FileInputStream ("D:/EDU/java/abc.txt"); 
     int din; 
     while ((din=apple.read())!=-1){ 
      System.out.println((char)din); 
     } 
     apple.close(); 
    } 
} 

我的错误:

Exception in thread "main" java.io.FileNotFoundException: D:\EDU\java\abc.txt (The system cannot find the file specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at javapro.office.main(office.java:8) 
+0

你放的abc.txt在正确的地方(d:\ EDU \ java的\)?另外,如果你使用反斜杠,它应该是“D:\\ EDU \\ java \\ abc.txt”。 –

回答

1

确保文件实际上是位于该目录中。右键单击并单击属性以检查路径。

如果已经这样做,请将所有\更改为/\\

1

错误是不言自明的。该文件不是你已经告诉应用程序的地方。检查你的路径,确保它通向文件。

0

1)更改代码如下

FileInputStream apple = new FileInputStream ("D:\\EDU\\java\\abc.txt"); 

InputStream is = getClass().getResourceAsStream("abc.txt"); 

//if abc.txt is present in classpath 

从InputStream中,你必须读取数据。

编辑:解决非静态误差

InputStream is = office.class.getClass().getResourceAsStream("abc.txt"); 
+0

包javapro; import java.io.FileInputStream; import java.io.InputStream; 公共类办公{ \t公共静态无效的主要(字串[] args)抛出异常{ \t \t InputStream为=的getClass()的getResourceAsStream( “的abc.txt”); int din; FileInputStream apple; ((din = apple.read())!= - 1){System.out.println((char)din); \t} apple.close(); } \t } – Dikil

+0

错误:异常在线程“主要” java.lang.Error的:未解决问题汇编: \t不能在javapro使静态参考从Object类型 \t的非静态方法的getClass() .office.main(office.java:9) – Dikil

+0

用\\尝试第一个。或者在类的构造函数中添加代码并在main方法中创建对象。 –