java对象存入txt文件,能够读出来,追加对象到txt中, 将对象存入list中,连续追加两次,追加的内容再后面
1个回答
展开全部
你好,我给你提供思路,实现很容易,我相信你应该明白。
将对象写入文件,明显是对象序列化的内容,让某个对象实现serilizable接口就可以了。
追加写,就是在构建文件流的时候,多传入一个参数,设置为true,否则默认是覆盖写的。
将对象保存到List集合中,这不需要说吧。
还有你的问题表述的不是很清楚,最后一句没有看懂。
将对象写入文件,明显是对象序列化的内容,让某个对象实现serilizable接口就可以了。
追加写,就是在构建文件流的时候,多传入一个参数,设置为true,否则默认是覆盖写的。
将对象保存到List集合中,这不需要说吧。
还有你的问题表述的不是很清楚,最后一句没有看懂。
追问
就是把对象存入文件,能读出来,追加不覆盖,还有得用什么链表,追加内容,明白吗
有源码吗?非常感谢
追答
还是我帮你写下吧,代码如下:
import java.io.* ;
import java.util.* ;
class Person implements Serializable{
private static final long serialVersionUID = 1L;
private transient String name ;
private int age ;
public Person(){}
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public String toString(){
return "姓名:"+name+";年龄:"+age ;
}
}
public class BaiDuDemo01 {
public static void main(String[] args) throws Exception{
String path = "d:"+File.separator+"test.txt" ; //文件的存储路径
Person p1 = new Person("人员1",23) ;
//1.把 p1写入文件,你自己在d盘下创建一个test文件
write(path, p1) ;
//2.把 p1读出来
Person p = (Person) read(path) ;
System.out.println("读到的对象为:" + p) ;
Person p2 = new Person("测试2",33) ;
//3.将p2追加到txt中
write(path, p2) ;
//4.将对象存入list中
List list = new ArrayList() ;
list.add(p1) ;
list.add(p2) ;
//5.追加的内容再后面 --->这句我不理解你啥意思
//如果还需要继续将txt写入对象,那么继续调用write方法就可以了。
}
public static void write(String path,Object obj)throws Exception{
File f = new File(path) ;
OutputStream out = new FileOutputStream(f,true) ;
ObjectOutputStream oos = new ObjectOutputStream(out) ;
oos.writeObject(obj) ;
oos.close() ;
System.out.println("-----写入成功....");
}
public static Object read(String path) throws Exception{
File f = new File(path) ;
InputStream in = new FileInputStream(f) ;
ObjectInputStream ois = new ObjectInputStream(in) ;
Object obj = ois.readObject();
ois.close();
return obj ;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询