2017-11-10 97 views
2

我在学生类创建的以下实例变量读取数据并存储:故障在一个对象类型实例变量

private String name; 
private char gender;  // 'M'/'F' 
private Date birthday; 
private Preference pref; 
private boolean matched; 

为偏好I类创建

private int quietTime; // scale of 1-10 private int music; // 1 - 10 private int reading; // 1 - 10 private int chatting; // 1 - 10 为日期I类创建

private int year; // between 1900 to 3000 private int month; // between 1 to 12, 1 is jan; private int day; // between 1- 31 assume feb max is 28 days!

麻烦是我的主要方法我尝试导入下面的lib raries

import java.util.Scanner; 
import java.io.File; 

,我想读txt文件,并存储数据在每一个学生实例变量,下面是我的代码我试过,但我收到的错误有关 “学生不能被解析为一个变量” 并且例如下面是从文本文件中的行中的一个:

Abhay F 1-5-1994 0 0 0 0 // seperate by tab and '-'

我给匹配类代码 - main方法的类:

` 
    Student[] students = new Student[100]; 
    int bestScore = 0; 
    String readInfo = ""; 

    Scanner inFile = new Scanner(new File("Students.txt")).useDelimiter("\t-"); 

    for (int i = 0; i < 100; i++) { 
     readInfo = inFile.next(); 
     student[i] = readInfo; 
    } 
    inFile.close(); 
} 
} 

while(1) { 
    r.nextBoolean(); 
    if (!nextBoolean()) 
    { 
    return true; 
    } 

` 

我刚开始学习java了十天,我完全是一个新手,有人五月帮我如何修正这个错误,我真的很appercate它!

+2

那么,你有一个叫做'student'变量? – shmosel

+1

您需要将字符串转换成一个Student对象。 Java不会为你做到这一点。 – Compass

+0

我建议你把问题分解成小块。在你甚至想到如何阅读一篇文章之前,你似乎正在尝试阅读一份100名学生的名单。从那里开始。写一个小方法来读取代表单个学生的每一段数据。 –

回答

1

如果你想读或写的东西到文件,你可以使用这些流。它比Scanner更好。

public static void main(String[] args) throws IOException { 
    BufferedReader reader = new BufferedReader(new FileReader(new File("path\\to\\your\\file.txt"))); 
    BufferedWriter writer = new BufferedWriter(new FileWriter(new File("path\\to\\your\\second\\file.txt"))); 
    //read one line from your file 
    String line = reader.readLine(); 
    //write something to your file 
    writer.write(line); 
} 

如果要将整个对象写入文件,Java具有ObjectInput/Output流。

public static void main(String[] args) throws IOException, ClassNotFoundException { 
    ObjectInputStream input = new ObjectInputStream(new FileInputStream(new File("yourFile.bin"))); //or any file type 
    ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(new File("yourFile.bin"))); 

    output.writeObject(yourObject); 
    YourObject yourObject = input.readObject(); 
} 
1

你专门让这里的错误与您实例名“学生”的数组但你引用名“学生”的数组的事实。

由于您从未实例化学生数组,因此会出现以下错误:学生无法解析为变量。

尝试:

students[i] = readInfo;