程序不读取文本文件

时间:2014-09-12 20:54:21

标签: java netbeans file-io

我是初学Java学生,正在完成我们的第一堂课。 在这个赋值中,我需要读取一个txt文件,并用一个数组填充其内容,每行数组中的第一个空格。

我的教授给了我们代码来执行此操作,但我不断收到错误,每次尝试时都无法读取该文件。 我在Mac上使用Netbeans 8,文件States.Fall2014.txt位于src文件夹中,包含我所有的java类。

Exception in thread "main" java.io.FileNotFoundException: States.Fall2014.txt (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at java.io.FileReader.<init>(FileReader.java:58)
    at main.main(main.java:21)
Java Result: 1

这是我的代码。我只包含了与打开文件相关的代码,因为我确定你不希望被其他类发送垃圾邮件。 修剪过程中注释的代码是回显打印,以确保正确读取文件(因为文件根本没有被读入,所以当前不需要)。

import java.io.*;

public class main {

    /**
     * @param args the command line arguments
     * @throws java.io.IOException
     */
    public static void main(String args[]) throws IOException {
        StateCollection Sdriver = new StateCollection(50);
         //Sdriver = new StateCollection(50);
        //Creates object of collection class
         FileReader fr= new FileReader("States.Fall2014.txt");
         BufferedReader br1 = new BufferedReader (fr);
          String inputString;  
      String stateName;
          String stateCapital;
          String stateAbbrev;
          int statePop;
          String stateRegion;
          int stateRegionNum;

          inputString = br1.readLine();
            while (inputString != null)
         {
           stateName = inputString.substring(1, 15).trim();
           //System.out.println("stateName read in was: " + stateName);
           stateCapital = inputString.substring(16, 30).trim();
           //System.out.println(“stateCapital read in was: “ + stateCapital);
           stateAbbrev = inputString.substring(31, 32).trim();
           //System.out.println(“stateAbbrev read in was: “ + stateAbbrev);
           statePop = Integer.parseInt(inputString.substring(33, 40));
           //System.out.println(“statePop read in was: “ + statePop);
           stateRegion = inputString.substring(41, 55).trim();
           //System.out.println(“stateRegion read in was: “ + stateRegion);
           stateRegionNum = Integer.parseInt(inputString.substring(56));
           //System.out.println(“stateRegionNum read in was: “ + stateRegionNum);
           //Code to create object
            inputString = br1.readLine();    // read next input line.
         }
         br1.close();     //Close input file being read

4 个答案:

答案 0 :(得分:0)

确保TXT文件位于正确的文件夹/区域。

您不应该在课堂上使用它,因为另一个答案指出,您需要在根文件夹中。

答案 1 :(得分:0)

将文件向上移动一级,与src文件夹相同。

答案 2 :(得分:0)

src目录不是(必然).class文件所在的目录。确保States.Fall2014.txt在类路径上。

答案 3 :(得分:0)

更改

FileReader fr= new FileReader("States.Fall2014.txt");

FileReader fr= new FileReader("src/States.Fall2014.txt");

将文件向上移动一级到项目目录。