用Java读取文件

时间:2013-10-09 16:51:42

标签: java eclipse file

我们还没有学过如何读取和写入文件,但是我们已经提供了一个预制方法,可以读取txt文件。问题是它似乎不起作用。这是给我们的预制方法。

/******************************************************************************
 *
 * Filename :     GradeCalculatorFromFile.java.
 * Author:        xxxxxxxxxxx
 * Date:          09/025/2011
 * Description:  This program computes the scores of a list of students in the CSE155a class
 *
 ******************************************************************************/
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

/* Provide a description of the class */
public class GradeCalculatorFromFile {
    public static void main(String[] args) {
        // Declare and initialise the variables as needed
      /* The following code enables the user to accept input from the keyboard. Keep this code as it is. */
        Scanner scanner = null;
        try {
            scanner = new Scanner(new File("grades.txt"));
        } catch (FileNotFoundException e) {
            System.out.println("Error opening file. Please make sure that you have a grades.txt file in the same folder as GradeCalculator.class");
            System.exit(0);
        }
        /*
        Add your code here to read the number of students and the scores
        Use scanner.next() to read a String
        Use scanner.nextInt() to read an int
        */
    }
}

现在,说明告诉我们将grades.txt放在与GradeCalculatorFromFile.class相同的文件夹中。我这样做,但是我收到错误消息“打开文件时出错。请确保在GradeCalculator.class所在的文件夹中有grade.txt文件”。这个方法有问题吗?我正在使用eclipse,并将grades.txt文件放在C:\ Users \ xxxx \ workspace \ Homework 3 \ bin

5 个答案:

答案 0 :(得分:2)

Eclipse将工作目录设置为项目目录。将文件放到

  

C:\ Users \ xxxx \ workspace \ Homework 3

它应该可以正常工作。

答案 1 :(得分:2)

Eclipse可能是从不同的工作目录运行程序而不是您认为的程序。尝试从命令行运行程序,然后进入正确的目录并运行“java GradeCalculator.class”

这应该有效。

答案 2 :(得分:1)

尝试将其移至Homework 3目录。如果您使用javacjava命令来编译和运行程序,那么将grade.txt文件和已编译的类文件放在一起是正确的。但是,Eclipse会将类路径修改为非默认值。

答案 3 :(得分:1)

您必须将文件放在src路径的根目录中,然后使用" /grades.txt"

读取它

答案 4 :(得分:0)

您有两种选择:将文件移动到项目目录

C:\Users\xxxx\workspace\Homework 3\

因为这是Eclipse将其当前工作目录设置为。

您的第二个选择是将文件作为资源流打开

Scanner scanner = null;
scanner = new Scanner(
              GradeCalculatorFromFile.class.getResourceAsStream("grades.txt"));

这假设您的文件位于GradeCalculatorFromFile.class旁边(就像现在一样),即CLASSPATH上提供的文件。