在使用某些代码时出现问题,如果我将文件放在某处然后输入完整的文件位置,它可以正常工作,但我不希望它成为那样。我只想从当前目录中读取我的data.txt。
错误是:java.io.FileNotFoundException:data.txt(系统找不到指定的文件)
我正在使用Eclipse,我已经尝试将data.txt放在项目的根文件夹中,src和bin文件夹,没有任何效果。甚至尝试从头开始创建文件作为Eclipse项目的一部分。仍然不会读作data.txt。这必须是我犯的一些愚蠢的错误,因为它适用于输入的完整文件位置,但这会杀死任何可移植性。
这是代码的摘录。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
//... more code
Scanner fileScanner=null;
double salary;
double commission;
double sales;
double stock;
try
{
fileScanner=new Scanner(new File("data.txt"));
while(fileScanner.hasNextLine())
{
int year=fileScanner.nextInt();
String type=fileScanner.next();
我试图避免发布所有代码,因为它很长,但如果需要,请询问,我会更新。
谢谢!
答案 0 :(得分:1)
尝试这样做,此代码会将当前工作目录添加到您的路径
import java.net.*;
import java.io.*;
import java.util.Scanner;
public class Test {
public static void main(String... args) throws Exception {
URL location = Test.class.getProtectionDomain().getCodeSource().getLocation();
System.out.println(location.getFile());
Scanner fileScanner = new Scanner(new File(location.getFile() + "data.txt"));
while (fileScanner.hasNextLine()) {
System.out.println(fileScanner.nextLine());
}
}
}
答案 1 :(得分:0)
您的项目结构应如下所示:
ProjectRoot
|-> src/
|-> bin/
|-> data.txt