对象文件:
public class Student {
private String number;
private String name;
private String sex;
private int age;
private GregorianCalendar birthDate;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public GregorianCalendar getBirthDate() {
return birthDate;
}
public void setBirthDate(GregorianCalendar birthDate) {
this.birthDate = birthDate;
}
}
实现类文件:
public class StudentTest {
public static void writeDateToFile(Student[] students, PrintWriter out) {
int count = students.length;
if (count <= 0 || out == null) {
return;
}
out.println(count);
for (int i = 0; i < count; i++) {
Student student = students[i];
StringBuffer info = new StringBuffer();
info.append(student.getNumber());
info.append("|");
info.append(student.getName());
info.append("|");
info.append(student.getSex());
info.append("|");
info.append(student.getAge());
info.append("|");
//注意GregorianCalendar获取年、月、日的方法
info.append(student.getBirthDate().get(Calendar.YEAR));
info.append("|");
info.append(student.getBirthDate().get(Calendar.MONTH));
info.append("|");
info.append(student.getBirthDate().get(Calendar.DAY_OF_MONTH));
out.println(info);
}
out.close();
}
public static Student[] readDateFromFile(Scanner scanner) {
if (scanner == null) {
return null;
}
int count = scanner.nextInt();
if (count <= 0) {
return null;
}
//注意对象数组中对象的初始化
Student[] students = new Student[count];
for (int i = 0; i < students.length; i++) {
students[i] = new Student();
}
//注意nextLine()方法的使用
scanner.nextLine();
for (int i = 0; i < count; i++) {
String line = scanner.nextLine();
String[] tokens = line.split("//|");
students[i].setNumber(tokens[0]);
students[i].setName(tokens[1]);
students[i].setSex(tokens[2]);
students[i].setAge(Integer.parseInt(tokens[3]));
int year = Integer.parseInt(tokens[4]);
int month = Integer.parseInt(tokens[5]);
int day = Integer.parseInt(tokens[6]);
students[i].setBirthDate(new GregorianCalendar(year, month, day));
}
scanner.close();
return students;
}
public static void main(String[] args) throws FileNotFoundException {
Student[] students = new Student[3];
students[0] = new Student();
students[0].setNumber("0606054120");
students[0].setName("myr");
students[0].setSex("男");
students[0].setAge(24);
students[0].setBirthDate(new GregorianCalendar(1987, 8, 10));
students[1] = new Student();
students[1].setNumber("1616154121");
students[1].setName("hhl");
students[1].setSex("女");
students[1].setAge(25);
students[1].setBirthDate(new GregorianCalendar(1986, 8, 11));
students[2] = new Student();
students[2].setNumber("2626254122");
students[2].setName("zxx");
students[2].setSex("女");
students[2].setAge(26);
students[2].setBirthDate(new GregorianCalendar(1986, 8, 12));
Logger.getLogger("com.scanner").info("studnets init end");
Logger.getLogger("com.scanner").info(
"dataFlie path :"
+ Thread.currentThread().getContextClassLoader()
.getResource("com/scanner/students.txt").getPath());
PrintWriter out = new PrintWriter(Thread.currentThread()
.getContextClassLoader().getResource("com/scanner/students.txt").getPath());
Logger.getLogger("com.scanner").info("writeDateToFile begin...");
writeDateToFile(students, out);
Logger.getLogger("com.scanner").info("writeDateToFile end");
Scanner scanner = new Scanner(new File(Thread.currentThread()
.getContextClassLoader().getResource("com/scanner/students.txt").getPath()));
Logger.getLogger("com.scanner").info("readDateFromFile begin...");
readDateFromFile(scanner);
Logger.getLogger("com.scanner").info("readDateFromFile end");
for (int i = 0; i < students.length; i++) {
Student student = students[i];
System.out.println(student.getNumber() + " " + student.getName()
+ " " + student.getSex() + " " + student.getAge() + " "
+ student.getBirthDate().get(Calendar.YEAR) + "年"
+ student.getBirthDate().get(Calendar.MONTH) + "月"
+ student.getBirthDate().get(Calendar.DAY_OF_MONTH) + "日");
}
}
}