第一种方法
package main;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import entity.Employee;
public class FileWite8Read {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee("Harry Port", 17, "male", "England"));
employees.add(new Employee("Amy Fan", 20, "female", "America"));
try {
PrintWriter out = new PrintWriter("employee.txt", "utf-8");
writeEmployees(out, employees);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Scanner in = new Scanner(new FileInputStream("employee.txt"));
List<Employee> emList = readEmployees(in);
System.out.println(emList);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static List<Employee> readEmployees(Scanner in) {
// TODO Auto-generated method stub
List<Employee> employees = new ArrayList<>();
String line = null;
while (in.hasNextLine() && (line = in.nextLine()) != null) {
String[] employee = line.split("\\|");
employees.add(new Employee(employee[0], Integer.parseInt(employee[1]), employee[2], employee[3]));
}
return employees;
}
// data form like "name|age|sex|address"
private static void writeEmployees(PrintWriter out, List<Employee> employees) {
// TODO Auto-generated method stub
for (Employee employee : employees) {
out.print(employee.getName() + "|");
out.print(employee.getAge() + "|");
out.print(employee.getSex() + "|");
out.println(employee.getAddress());
out.flush();
}
out.close();
}
}
另一种简单的方法:利用对象流
package me.zhan.other.stream8file;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import me.zhan.entity.Employee;
/**
* @author jeff.zhan
* @version 2016年11月2日 下午9:26:36
*
*/
public class ObjectStream {
public static void main(String[] args) {
Employee harry = new Employee("harry", 500, 1989, 10, 1);
Employee tony = new Employee("tony", 4000, 1990, 3, 15);
Employee[] staff = new Employee[2];
staff[0] = harry;
staff[1] = tony;
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee2.dat"))) {
out.writeObject(staff);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee2.dat"))) {
Employee[] newStaff = (Employee[]) in.readObject();
for (Employee employee : newStaff) {
System.out.println(employee);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}