假如我把数据都封装在一个类中,
然后如何把多个结构整体数据读入文件呢?
如果要用的时候如何把它读出来,是一个一个读,还是一起读出来,保存在类似于数组一样的数据集中,
最最重要如何实现?
谢谢!

解决方案 »

  1.   

    实现java.io.Serializable接口然后对象就可以用stream.readObject stream.writeObject读写文件
      

  2.   


    package aillo;
    import java.io.*;
    public class FileWriterReader {
    //功能:读取f:/aillo.txt文件的内容(一行一行读),并将其内容写入f:/jackie.txt中
    //知识点:java读文件、写文件---<以字符流方式>
        public static void main(String[] args) {
            try {
                FileReader fr = new FileReader("f:/aillo.txt");//创建FileReader对象,用来读取字符流
                BufferedReader br = new BufferedReader(fr);    //缓冲指定文件的输入
                FileWriter fw = new FileWriter("f:/jackie.txt");//创建FileWriter对象,用来写入字符流
                BufferedWriter bw = new BufferedWriter(fw);    //将缓冲对文件的输出
                String myreadline;    //定义一个String类型的变量,用来每次读取一行
                while (br.ready()) {
                    myreadline = br.readLine();//读取一行
                    bw.write(myreadline); //写入文件
                    bw.newLine();
                    System.out.println(myreadline);//在屏幕上输出
                }
                bw.flush();    //刷新该流的缓冲
                bw.close();
                br.close();
                fw.close();
                br.close();
                fr.close();        } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
      

  3.   

    给你一个例子:package src;import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.ArrayList;public class AAA { private static FileOutputStream saveStream;
    private static ObjectOutputStream saveObject;
    private static FileInputStream loadStream;
    private static ObjectInputStream loadObject;
    private static File file;

    public static void main(String[] args) {
    new AAA();
    }

    public AAA(){
    //初始化一个list
    ArrayList<String> list = new ArrayList<String>();
    list.add("test1");
    list.add("test2");

    //保存list为文件
    saveList(list);

    //读取文件
    ArrayList<String> list2=loadList();

    //打印文件内容
    System.out.println("文件内容:");
    for(int i=0;i<list2.size();i++){
    System.out.println(list2.get(i));
    }
    }



    public static void saveList(ArrayList<String> list){
    try{
    saveStream=new FileOutputStream("D:/test.aaa");
    saveObject=new ObjectOutputStream(saveStream);
    saveObject.writeObject(list);
    saveObject.flush();
    saveObject.close(); System.out.println("save success!!");
    }catch(Exception e){
    e.printStackTrace();
    }
    }

    public static ArrayList<String> loadList(){
    ArrayList<String> list = new ArrayList<String>();
    try{
    file=new File("D:/test.aaa");
    if(file.exists()){
    loadStream=new FileInputStream("D:/test.aaa");
    loadObject=new ObjectInputStream(loadStream);
    list=(ArrayList<String>)loadObject.readObject();
    loadStream.close();
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    return list;
    }
    }如果要保存一个自己定义的类的话,此类一定要实现java.io.Serializable接口