Проблемы с чтением файлов, введенных в виде символов - PullRequest
0 голосов
/ 01 ноября 2011

Я пытаюсь создать конструктор для класса, который принимает два параметра, которые являются файлами, и помещает информацию в файлы в полях моего массива

мой код для программы выглядит следующим образом:

 import java.util.Scanner;
 import java.io.*;

  public class Chapter7ALabDemo
 {
     public static void main (String [] args) throws IOException
 {
     File file;
     Scanner readKey;
     Scanner readAnswers;
     String str;
      int numQuestions;
     DriverExam student;
     int [] missedQuestions;

     Scanner keyboard = new Scanner(System.in);

      System.out.println("Enter the name of the file that is the test key ");
      str = keyboard.nextLine();
      file = new File(str);
      readKey = new Scanner(file);

      System.out.println("Enter the name of the file with the student answers.");
      str = keyboard.nextLine();
      file = new File(str);
      readAnswers = new Scanner(file);

      System.out.println("How many test questions are there?");
      numQuestions = keyboard.nextInt();

      student = new DriverExam(readKey, readAnswers, numQuestions);
      missedQuestions = student.questionsMissed();

      System.out.println(student);
      if (student.passed())
          System.out.println("The student passed.");
      else
          System.out.println("The student did not pass.");

      System.out.println("The student got " + student.totalCorrect() + " answers correct.");
     System.out.println("The student got " + student.totalIncorrect() + " answers incorrect."); 
     System.out.println("The following questions were missed by the student: ");
     student.printMissed(missedQuestions);
 }
}

Мой конструктор должен создавать экземпляры массивов с заданным размером и сохранять данные, считанные из файла, в массив ключей ответов и сохранять данные, прочитанные из другого файла, в массив ответов учеников.мой конструктор внутри моего класса, который я попробовал, выглядит следующим образом. Примечание: я сделал только первый, чтобы показать)

import java.util.Scanner;
public class DriverExam
 {
    private static char[] answerKey;
    private static char[] studentAns;

    public DriverExam(Scanner readKey,Scanner readAnswers,int numQuestions)
    {
        answerKey = new char[numQuestions];
        for (int i = 0; readKey.hasNext() && i < numQuestions; i++)
             answerKey[i] = readKey.nextChar();


    }

Единственная проблема заключается в том, что у меня возникают проблемы с чтением символа за разответ и ключ выглядят так: A B B

и т. д.

Я читал здесь об использовании FileInputStream, но мы не дошли до этого в наших исследованиях.Я получаю сообщение об ошибке не могу прочитать строку как символ.Что я должен делать тогда?Кроме того, я думал, что нет способа преобразовать строку в символ?

1 Ответ

1 голос
/ 01 ноября 2011

Вы можете попробовать это answerKey[i] = readKey.next().charAt(0) с необходимыми проверками границы / нуля.

...