Java File Scanner,找不到文本文件

时间:2015-11-02 01:02:21

标签: java eclipse

在使用某些代码时出现问题,如果我将文件放在某处然后输入完整的文件位置,它可以正常工作,但我不希望它成为那样。我只想从当前目录中读取我的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();

我试图避免发布所有代码,因为它很长,但如果需要,请询问,我会更新。

谢谢!

2 个答案:

答案 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