天天看點

黑馬程式員:DVD管理系統項目之三--使用io流模拟迷你SQL

----------------------  ASP.Net+Android+IO開發S 、 .Net教育訓練 、期待與您交流! ----------------------

前言:

這個項目我做起來感覺還是滿綜合的,,基本覆寫到了java基礎的全部内容,,我發帖的思路是由易到難得,,

結合執行個體幫助新手了解Java程式設計思想。。全部講完之後,,我會把源代碼和做好的小程式發出來給大家玩,,,,現在主要是把思路給大家!~~

[原創]DVD管理系統項目之一--使用IO流模拟SQL

問題說明:

集合中儲存的資料都在記憶體中,在關閉程式後就消失了,,是以我們用一個TXT檔案來儲存資料,,

類似于資料庫的操作,,,隻是簡化了,,增删改查,,,,隻在必要時,進行資料的互動。

先上圖:

黑馬程式員:DVD管理系統項目之三--使用io流模拟迷你SQL

上圖是檔案結構,

我這裡推薦用反射來擷取相對位址,,你可以試試,,

我的代碼如下:

  1. // io入口!!!!!!!!!!!!!!!!!!!!!
  2.                 // 批量導入---添加
  3.                 addall.addActionListener(new ActionListener() {
  4.                         @Override
  5.                         public void actionPerformed(ActionEvent arg0) {
  6.                                 // TODO Auto-generated method stub
  7.                                 JFileChooser jf = new JFileChooser();
  8.                                 jf.showOpenDialog(MiniDVD.this);
  9.                                 try {
  10.                                         File file = jf.getSelectedFile();
  11.                                         FileWriter fw = new FileWriter("DVDsql.txt", true);
  12.                                         FileReader fr = new FileReader(file);
  13.                                         char[] buf = new char[1024];
  14.                                         int num = 0;
  15.                                         while ((num = fr.read(buf)) != -1) {
  16.                                                 fw.write((new String(buf, 0, num)));
  17.                                         }
  18.                                         fr.close();
  19.                                         fw.close();
  20.                                 } catch (FileNotFoundException e) {
  21.                                         // TODO Auto-generated catch block
  22.                                         e.printStackTrace();
  23.                                 } catch (IOException e) {
  24.                                         // TODO Auto-generated catch block
  25.                                         e.printStackTrace();
  26.                                 }
  27.                         }

複制代碼

  1. delAll.addActionListener(new ActionListener() {
  2.                         @Override
  3.                         public void actionPerformed(ActionEvent arg0) {
  4.                                 // TODO Auto-generated method stub
  5.                                 try {
  6.                                         FileWriter clean = new FileWriter("DVDsql.txt", false);
  7.                                         clean.write("\r\n");
  8.                                         clean.close();
  9.                                 } catch (IOException e) {
  10.                                         // TODO Auto-generated catch block
  11.                                         e.printStackTrace();
  12.                                 }
  13.                                 labDialog.setText("所有資料已删除!");
  14.                                 d.setVisible(true);
  15.                         }

複制代碼

  1.         // 讀取mysql
  2.         String[] readSQL() throws IOException {
  3.                 String[] str;
  4.                 StringBuffer sb = new StringBuffer();
  5.                 FileReader fileReader = null;
  6.                 fileReader = new FileReader("DVDsql.txt");
  7.                 char[] buf = new char[1024];
  8.                 int num = 0;
  9.                 while ((num = fileReader.read(buf)) != -1) {
  10.                         sb.append(new String(buf, 0, num));
  11.                 }
  12.                 fileReader.close();
  13.                 str = split(sb);
  14.                 return str;
  15.         }
  16.         // 切割器
  17.         String[] split(StringBuffer sb) {
  18.                 return sb.toString().split("\r\n");
  19.         }
  20.         // 儲存
  21.         void toSave() {
  22.                 try {
  23.                         FileWriter save = new FileWriter("DVDsql.txt", true);
  24.                         for (DVD eachDVD : myDVD) {
  25.                                 String eachDVDName = eachDVD.getName();
  26.                                 save.write(eachDVDName + "\n");
  27.                         }
  28.                 } catch (IOException e1) {
  29.                         // TODO Auto-generated catch block
  30.                         e1.printStackTrace();
  31.                 }
  32.         }

複制代碼

如果你有更好的解決代碼,可以和我交流,十分感謝。。。。

----------------------  ASP.Net+Android+IO開發S 、 .Net教育訓練 、期待與您交流! ----------------------

繼續閱讀