本帖最后由 李道福 于 2013-3-31 23:27 编辑
- import java.io.*;
- import java.util.*;
- class FileOperate{
- File file=null;
- FileOperate(){
- file=new File("D:\\li\\li.txt");
- }
- public void save(Object obj) throws Exception{
- ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file));
- oos.writeObject(obj);
- oos.close();
- }
- public Object load() throws Exception{
- ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
- Object obj=ois.readObject(); //这里我只取出了一个对象,返回了一个对象给调用者
- ois.close();
- return obj;
- }
- }
- class Util{
- List lt=null;
- FileOperate fo=null;
- Util(){
- lt=new LinkedList();
- fo=new FileOperate();
- }
- public void add(String text) throws Exception{
- lt.add(text);
- fo.save(lt); //这句没看懂,在主方法中我只创建了一个Util对象也就是只创建了一个LinkedList对象;那我每
- } //调用一次add()方法是不是就要调用save()方法将lt存入硬盘,也就是我调用了很多次add()方法
- //那我就是将对象lt存入硬盘很多次,但为什么我在取出数据时为什么只要返回一个对象就可以
- //将所有存入的信息全部取出?
-
- public void findAll() throws Exception{
- LinkedList lt2=(LinkedList)fo.load(); //这里fo.load()方法只返回了一个LinkedList对象,应该总能取出一个输入的信息才对呀?
- Iterator it=lt2.iterator();
- while(it.hasNext()){
- System.out.println(it.next());
- }
- }
- }
- public class Test2{
- public static void main(String[] args) throws Exception{
- BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
- Util ul=new Util();
- while(true){
- System.out.println("请输入信息:");
- String text=bufr.readLine();
- ul.add(text);
- if(text.equals("over"))
- break;
- }
- System.out.println("输出全部信息:");
- ul.findAll();
- }
-
- }
- 求大神解释下
复制代码 |