我有以下程序,文件“euler8.txt”存储在项目的src文件夹C:\Users\john\workspace\Euler1\src\euler8.txt
中。我尝试运行时收到异常Exception in thread "main" java.io.FileNotFoundException: euler8.txt (The system cannot find the file specified)
。
private static void euler8() throws IOException
{
int current;
int largest=0;
int c =0;
ArrayList<Integer> bar = new ArrayList<Integer>(0);
File infile = new File("C:/Users/xxxxxxxx/workspace/Euler1/euler8.txt");
BufferedReader reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(infile),
Charset.forName("UTF-8")));
try
{
while((c = reader.read()) != -1)
{
bar.add(c);
}
}
finally{reader.close();}
for(int i=0; i<bar.size(); i++)
{
current = bar.get(i) * bar.get(i+1) * bar.get(i+2) * bar.get(i+3) * bar.get(i+4);
if(largest<current)
largest = current;
}
}
我现在正在看的图像 http://img163.imageshack.us/img163/7017/halpbk.png
答案 0 :(得分:1)
您应该将文本文件从src
文件夹中移出,直接放在项目文件夹下。
或,请将路径更改为: -
File infile = new File("./src/euler8.txt");
您提供的路径是相对于根文件夹的,因此如果您提供"euler8.txt"
,则无法找到该文件。您需要提供相对于项目文件夹的路径才能进入src
文件夹。
您也可以提供absolute path
,但这不是可行的方法,因为每次您将项目移动到其他位置时都会要求修改路径。
答案 1 :(得分:1)
此行在根文件夹中查找您的文本文件。
File infile = new File("euler8.txt");
你需要给出这样的绝对路径
File infile = new File("C:/Users/john/workspace/Euler1/src/euler8.txt");
或者,因为jLordo建议将文件移动到根文件夹
答案 2 :(得分:1)
三种解决方案。选择一个:
1:将su一个目录中的euler.txt移动到上面 2:将行改为
File infile = new File("./src/euler8.txt");
3:使用绝对路径
String path = "C:/Users/john/workspace/Euler1/src/";
String file = "euler8.txt";
File infile = new File(path + file);
答案 3 :(得分:0)
试试这个
InputStream inputStream = getClass().getResourceAsStream("euler8.txt");
String sa = "";
int cc;
while((cc = inputStream.read()) != -1) {
sa += (char) cc;
}
假设euler8.txt在src文件夹中
答案 4 :(得分:0)
正如所指出的,当前工作目录是启动程序的目录,而不是src目录。您始终可以使用
找到当前的工作目录String workingDir = new java.io.File( "." ).getCanonicalPath();