EmployeeMain.java
package com.dreamhome.file;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;public class EmployeeMain { /**
* @param args
*/
public static void main(String[] args) {
Employee[] staff=new Employee[3];
staff[0]=new Employee("Tom", 562.12, 2012, 3, 21);
staff[1]=new Employee("Tony", 4568, 2012, 2, 21);
staff[2]=new Employee("hu", 562.12, 2012, 1, 21);
try {
PrintWriter out=new PrintWriter("employee.txt");
writeDate(staff, out);
out.close();
Scanner in=new Scanner(new FileReader("employee.txt"));
Employee[] newStaff=readDate(in);
in.close();
for(Employee e : newStaff){
System.out.println(e);
}
} catch (FileNotFoundException e) {
System.out.println("文件不存在");
}
}
private static void writeDate(Employee[] employees,PrintWriter out){
out.println(employees.length);
for (Employee e:employees) {
e.writeData(out);
}
}
private static Employee[] readDate(Scanner in){
int n=in.nextInt();
in.nextLine();
Employee[] employees=new Employee[n];
for (int i = 0; i < n; i++) {
employees[i]=new Employee();
employees[i].readData(in);
}
return employees;
}
}
[code]
Employee.java
package com.dreamhome.file;import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;public class Employee {
private String name;
private double salary;
private Date hireDate; public Employee() {
} public Employee(String name, double salary, int year, int month, int day) {
this.name = name;
this.salary = salary;
GregorianCalendar calendar = new GregorianCalendar(year, month + 1, day);
hireDate = calendar.getTime();
} public double getSalary() {
return salary;
} public Date getHireDate() {
return hireDate;
} public String getName() {
return name;
} @Override
public String toString() {
return getClass().getName() + "[name=" + name + ",salary" + salary
+ ",hireDate" + hireDate + "]";
} public void writeData(PrintWriter out) {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(hireDate);
System.out.println(name + "|" + salary + "|"
+ calendar.get(Calendar.YEAR) + "|"
+ calendar.get(Calendar.MONTH + 1)+"|"+calendar.get(Calendar.DATE));
}
public void readData(Scanner in) {
String line=in.nextLine();
String[]tokens=line.split("\\|");
name=tokens[0];
salary=Double.parseDouble(tokens[1]);
int y=Integer.parseInt(tokens[2]);
int m=Integer.parseInt(tokens[3]);
int d=Integer.parseInt(tokens[4]);
GregorianCalendar calendar=new GregorianCalendar(y,m-1,d);
hireDate=calendar.getTime();
}
}[/code]
Tony|4568.0|2012|16|21
hu|562.12|2012|12|21
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at com.dreamhome.file.Employee.readData(Employee.java:51)
at com.dreamhome.file.EmployeeMain.readDate(EmployeeMain.java:46)
at com.dreamhome.file.EmployeeMain.main(EmployeeMain.java:23)
输入是正确的,读取的时候有错误。
Employee.java
package com.dreamhome.file;import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;public class Employee {
private String name;
private double salary;
private Date hireDate; public Employee() {
} public Employee(String name, double salary, int year, int month, int day) {
this.name = name;
this.salary = salary;
GregorianCalendar calendar = new GregorianCalendar(year, month + 1, day);
hireDate = calendar.getTime();
} public double getSalary() {
return salary;
} public Date getHireDate() {
return hireDate;
} public String getName() {
return name;
} @Override
public String toString() {
return getClass().getName() + "[name=" + name + ",salary" + salary
+ ",hireDate" + hireDate + "]";
} public void writeData(PrintWriter out) {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(hireDate);
System.out.println(name + "|" + salary + "|"
+ calendar.get(Calendar.YEAR) + "|"
+ calendar.get(Calendar.MONTH + 1)+"|"+calendar.get(Calendar.DATE));
}
public void readData(Scanner in) {
String line=in.nextLine();
String[]tokens=line.split("\\|");
name=tokens[0];
salary=Double.parseDouble(tokens[1]);
int y=Integer.parseInt(tokens[2]);
int m=Integer.parseInt(tokens[3]);
int d=Integer.parseInt(tokens[4]);
GregorianCalendar calendar=new GregorianCalendar(y,m-1,d);
hireDate=calendar.getTime();
}
}
package com.dreamhome.file;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;class Employee {
private String name;
private double salary;
private Date hireDate; public Employee() {
} public Employee(String name, double salary, int year, int month, int day) {
this.name = name;
this.salary = salary;
GregorianCalendar calendar = new GregorianCalendar(year, month + 1, day);
hireDate = calendar.getTime();
} public double getSalary() {
return salary;
} public Date getHireDate() {
return hireDate;
} public String getName() {
return name;
} @Override
public String toString() {
return getClass().getName() + "[name=" + name + ",salary" + salary
+ ",hireDate" + hireDate + "]";
} public void writeData(PrintWriter out) {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(hireDate);
//System.out --你就没有写入文件
out.println(name + "|" + salary + "|"
+ calendar.get(Calendar.YEAR) + "|"
+ calendar.get(Calendar.MONTH + 1)+"|"+calendar.get(Calendar.DATE));
System.out.println(name + "|" + salary + "|"
+ calendar.get(Calendar.YEAR) + "|"
+ calendar.get(Calendar.MONTH + 1)+"|"+calendar.get(Calendar.DATE));
}
public void readData(Scanner in) {
String line=in.nextLine();
String[]tokens=line.split("\\|");
name=tokens[0];
salary=Double.parseDouble(tokens[1]);
int y=Integer.parseInt(tokens[2]);
int m=Integer.parseInt(tokens[3]);
int d=Integer.parseInt(tokens[4]);
GregorianCalendar calendar=new GregorianCalendar(y,m-1,d);
hireDate=calendar.getTime();
}
}
public class EmployeeMain { /**
* @param args
*/
public static void main(String[] args) {
Employee[] staff=new Employee[3];
staff[0]=new Employee("Tom", 562.12, 2012, 3, 21);
staff[1]=new Employee("Tony", 4568, 2012, 2, 21);
staff[2]=new Employee("hu", 562.12, 2012, 1, 21);
try {
PrintWriter out=new PrintWriter("employee.txt");
writeDate(staff, out);
out.close();
Scanner in=new Scanner(new FileReader("employee.txt"));
Employee[] newStaff=readDate(in);
in.close();
for(Employee e : newStaff){
System.out.println(e);
}
} catch (FileNotFoundException e) {
System.out.println("文件不存在");
}
}
private static void writeDate(Employee[] employees,PrintWriter out){
out.println(employees.length);
for (Employee e:employees) {
e.writeData(out);
}
}
private static Employee[] readDate(Scanner in){
int n=in.nextInt();
in.nextLine();
Employee[] employees=new Employee[n];
for (int i = 0; i < n; i++) {
employees[i]=new Employee();
employees[i].readData(in);
}
return employees;
}
}
结果:F:\javaTest>javac -d . EmployeeMain.javaF:\javaTest>java com.dreamhome.file.EmployeeMain
Tom|562.12|2012|21|21
Tony|4568.0|2012|16|21
hu|562.12|2012|12|21
com.dreamhome.file.Employee[name=Tom,salary562.12,hireDateSat Sep 21 00:00:00 CST 2013]
com.dreamhome.file.Employee[name=Tony,salary4568.0,hireDateSun Apr 21 00:00:00 CST 2013]
com.dreamhome.file.Employee[name=hu,salary562.12,hireDateFri Dec 21 00:00:00 CST 2012]F:\javaTest>