您好在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文件放在放置上述源代码文件的同一个包文件夹中。我不知道为什么我会收到这个错误。你能帮帮我吗?谢谢
答案 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