我一直在尝试在java中编写一个方法,将数据从数组写入文本文件,但是我遇到了两个错误。
public void WriteStudentDetailsToFile() {
PrintWriter out = null;
try {
out = new PrintWriter("StudentDetails.txt");
} catch (FileNotFoundException ex) {
System.out.println(ex.getMessage());
System.out.println("in " + System.getProperty("user.dir"));
System.exit(1);
}
for (int i = 0; i < enrolment.length; i += 1) {
if (enrolment[i] != null) {
Student a = this.enrolment[i];
if (a.getName().equals("") || a.getAddress().equals("") || a.getDOB().equals("") || a.getGender().equals("")) {
break;
} else {
String record = a.getName() + "\t" + "0" + "\t" + a.getAddress() + "\t" a.getDOB() + "\t" + a.getGender();
out.println(record);
}
}
}
}
}
这两个错误是
C:\ Users \ B00661059 \ Downloads \ Assignment 2 \ Assignment 2 \ Student_Enrolment.java:137:错误:';'预期 字符串记录= a.getName()+“\ t”+“0”+“\ t”+ a.getAddress()+“\ t”a.getDOB()+“\ t”+ a.getGender();
^ C:\ Users \ B00661059 \ Downloads \ Assignment 2 \ Assignment 2 \ Student_Enrolment.java:137:错误:不是声明 字符串记录= a.getName()+“\ t”+“0”+“\ t”+ a.getAddress()+“\ t”a.getDOB()+“\ t”+ a.getGender();
答案 0 :(得分:1)
最明显的错误是你在这里错过了一个加号:+ "\t" a.getDOB() +
。
应该是
String record = a.getName() + "\t" + "0" + "\t" + a.getAddress() + "\t" + a.getDOB() + "\t" + a.getGender();
您可能还想了解如何在Student类中定义和使用toString()
函数来控制对象的字符串表示形式。
答案 1 :(得分:1)
在第137行,您需要在此处添加连接运算符(+
):
"\t" + a.getDOB()
答案 2 :(得分:0)
试试这个:
String record = a.getName() + "\t" + "0" + "\t" + a.getAddress() + "\t" + a.getDOB() + "\t" + a.getGender();
而不是:
String record = a.getName() + "\t" + "0" + "\t" + a.getAddress() + "\t" a.getDOB() + "\t" + a.getGender();
这也没有意义:
if (a.getName().equals("") || a.getAddress().equals("") || a.getDOB().equals("") || a.getGender().equals("")) {
break;
}
由于你只对else分支感兴趣,你可以否定它。
if !(a.getName().equals("") || a.getAddress().equals("") || a.getDOB().equals("") || a.getGender().equals("")) {
// Do what you want
}