2013-10-09 7 views
0

Мы еще не узнали о том, как читать и писать файлы, но нам был предоставлен метод premade, который предположил бы прочитать txt-файл. Проблема в том, что она не работает. Это метод, который мы получили.Чтение файлов в Java

/****************************************************************************** 
* 
* 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. Я делаю это, но получаю сообщение об ошибке «Ошибка открытия файла. Убедитесь, что у вас есть файл grades.txt в той же папке, что и GradeCalculator.class». Что-то не так с этим методом? Я использую eclipse, и я помещаю файл grades.txt в C: \ Users \ xxxx \ workspace \ Homework 3 \ bin

+1

Google, как получить текущий путь программы в виде строки. Затем выведите путь, и это даст вам ссылку на то, где вам нужно поставить свой файл. –

+0

Не вставляйте его в bin .. переместите его в корневой каталог вашего проекта. else предоставить полный путь –

+0

Из того, что я помню в Eclipse, вам нужно пошатнуть ресурсы в каталоге уровня проекта, а не в подкаталоге bin. – Pshemo

ответ

2

Eclipse устанавливает рабочий каталог в каталог проекта. Поместите файл в

C: \ Users \ хххх \ рабочее пространство \ Домашнее задание 3

и он должен работать нормально.

2

Возможно, что Eclipse запускает программу из другого рабочего каталога, нежели тот, который вы так считаете. Попробуйте запустить программу из командной строки с помощью cding в соответствующий каталог и запустить «java GradeCalculator.class»

Это должно сработать.

1

Попробуйте переместить его в каталог Homework 3. Если вы использовали команды javac и java для компиляции и запуска вашей программы, вы должны были бы правильно найти файл grades.txt и скомпилированный файл класса. Тем не менее, Eclipse изменяет путь класса к чему-то не-умолчанию.

1

Вы должны поместить файл в корневой папке Src пути, а затем прочитать его с помощью «/grades.txt»

0

У вас есть два варианта: либо переместите файл в каталог проекта

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

потому что это то, что Eclipse задает для текущего рабочего каталога.

Ваш второй вариант, чтобы открыть файл как поток ресурсов

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

Это предполагает файл присутствует рядом с вашей GradeCalculatorFromFile.class (как это уже сейчас), то есть доступны на CLASSPATH.

Смежные вопросы