java.io.FileInputStream。<init>(未知来源)</init>

时间:2012-02-06 17:40:03

标签: java eclipse

您好在eclipse中部署了以下代码

//import cs1.Keyboard;
import java.util.*;
import java.io.*;
public class Parser
{
    public static void main (String[] args) throws IOException
    {
        String [][] addyArray = new String[50][4];
        for (int j=0; j<50; j++)
        {
            for (int k=0; k<4; k++)
            {
                addyArray[j][k] = "\n";
            }
        }
        FileReader inFile = new FileReader ("sample.txt");
        BufferedReader in = new BufferedReader (inFile);
        String line = "";
        int i = 0, a = 0;
        while(in.ready())
        {
            line = in.readLine();
            while (line != null && line != "\n")
            {
                addyArray[i][a] = line;
                line = in.readLine();
                a++;
                if (line == null) line = "\n";
            }
            i++;
            a = 0;
        }
        for(int j=0; j<3; j++)
        {
            for(int k=0;k<4;k++)
            {
                System.out.println((j+1) + "-" + (k+1) + " " + addyArray[j] [k]);
            }
        }
    }
}

我在此行FileReader inFile = new FileReader ("sample.txt");

收到以下错误
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at Parser.main(Parser.java:19)

我将sample.txt文件放在放置上述源代码文件的同一个包文件夹中。我不知道为什么我会收到这个错误。你能帮帮我吗?谢谢

3 个答案:

答案 0 :(得分:3)

在Eclipse中运行程序时,默认情况下,当前工作目录是项目的根目录。您可能有源代码的子目录,因此如果您在其中放入“sample.txt”,则无法找到它。

将文件打开为“&lt; sub-directory&gt; /sample.txt”,或者(最好)将文件移动到Eclipse项目的根目录。

在源代码中放置文件只有在它是“资源”时才适用;也就是说,某些信息不需要在运行时修改,但不方便表达为Java源代码。例如,UI的本地化文本和图像是资源,而窗口大小和位置的用户指定配置则不是。如果将文件视为资源,则可以使用Class {{1}}方法加载该文件。

答案 1 :(得分:1)

new BufferedReader(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("sample.txt")));

尝试此代码,以读取位于同一目录中的文件

答案 2 :(得分:0)

应该放在资源文件夹

src/main/java  ... same package
src/main/resource ... same package