Java IO 读写ArrayList

来源:互联网 发布:win8有线网络连接受限 编辑:程序博客网 时间:2024/06/16 10:49
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


public class arraylist{
public static void main(String[] args) throws Exception {
arraylist a = new arraylist();
a.adduser();
a.readuser();
}

user user = new user("wc11111111","123");//new user类的实例对象
user user1 = new user("wc111","123");
user user2 = new user("wc222","123");
user user3 = new user("wc333","123");
user user4 = new user("wc3332","123");

 void adduser() throws IOException, ClassNotFoundException{
List <user> list =  new ArrayList<>();//创建一个 ArrayList,将user对象们加进去
list.add(user);
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);

File file = new File("D:\\123\\3.txt");
file.createNewFile();
FileOutputStream fout = new FileOutputStream("D:\\123\\3.txt");
ObjectOutputStream oout = new ObjectOutputStream(fout);   //将对象写进文件

for(user x:list){
oout.writeObject(x);//通过增强for循环便利并写入文件
oout.flush();
}
}
 
 
 
 void readuser() throws Exception{
File file = new File("D:\\123\\3.txt");
int len = (int) file.length();
FileInputStream fin = new FileInputStream("D:\\123\\3.txt");
ObjectInputStream oin = new ObjectInputStream(fin);



for(int i =0;i<len;i++){

user u=(user) oin.readObject();//通过for循环读目标文件的内容,注意user里写toString方法

System.out.println(u);
}


 
 }

}


*************************************************************************************************************************************


import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


public class user implements Serializable{ //该类需要实现序列化

private  String username ;
private  String pwd;

public user(String username,String pwd) { //设置username和pwd
super();
this.setUsername(username);
this.setPwd(pwd);
}




public  String getUsername() {
return username;
}
public  void setUsername(String username) {
this.username = username;
}
public  String getPwd() {
return pwd;
}
public  void setPwd(String pwd) {
this.pwd = pwd;
}




@Override
public String toString() {//toString 方法,输出username和pwd
return "user [username=" + username + ", pwd=" + pwd + "]";
}










}