1. 程式人生 > >java工廠模式將資訊存入檔案

java工廠模式將資訊存入檔案

我們在學習java檔案讀寫時剛開始對於工廠模式的儲存可能會比較模糊,例如存入學生資訊系統每一個成員都有很多資訊分支而,在c語言中我們可以以結構體連結串列進行操作但java未提供我們這樣的方法去將一整個單元存入檔案之中,這時我們應採取的方法以演算法解決這樣的問題。我們在儲存時可以在每一個成員的不同資訊中以字元或空格隔開,java中再讀取檔案時是一整行讀取,讀取後在切割,分解資訊,這樣檔案中一行一個成員。

下面舉了一個簡單的例項,具體操作如下。

先編寫一個成員類

public class Display  {
    public String name;
    public String schoolnumber;
    public Display(String name,String schoolnumber){
        this.name=name;
        this.schoolnumber=schoolnumber;
    }   //初始化成員變數
}
import java.io.*;

public class Main {

    public static void main(String[] args) {

        Display display=new Display("小曾","10010");  //建立兩個物件例項
        Display display1=new Display("阿方","10011");
        File file=new File("work.txt");  //建立檔案物件

        try{
            FileWriter p=new FileWriter(file);
            BufferedWriter p1=new BufferedWriter(p);
            p1.write(display.name);
            p1.write(" ");  //以空格符分隔開成員資訊
            p1.write(display.schoolnumber);
            p1.newLine();  //存入物件一後換行
            p1.write(display1.name);
            p1.write(" ");
            p1.write(display1.schoolnumber);
            p1.newLine();
            p1.close();
            p.close();
        }catch (Exception e){
            e.printStackTrace();
        }

        try{
            FileReader q=new FileReader(file);
            BufferedReader q1=new BufferedReader(q);
            String s=null;
            int i=0;
            while ((s=q1.readLine())!=null){
                i++;
                String[] words=s.split(" ");   //定義String陣列words 一空格符分割字串s,String類的一些方法在我部落格中有一篇詳細的介紹
                System.out.println("第"+i+"個同學的姓名為:"+words[0]);
                System.out.println("學號為"+words[1]);
            } //迴圈讀取檔案每一行一String s儲存
            q1.close();
            q.close();
        }catch (Exception e1){
            e1.printStackTrace();
        }
    }
}

上圖為檔案中資訊儲存情況

下圖為程式碼執行結果