黑马程序员:DVD管理系统项目之三--使用io流模拟迷你SQL

----------------------  ASP.Net+Android+IO开发S .Net培训 、期待与您交流! ----------------------


前言:

这个项目我做起来感觉还是满综合的,,基本覆盖到了java基础的全部内容,,我发帖的思路是由易到难得,,
结合实例帮助新手理解Java编程思想。。全部讲完之后,,我会把源代码和做好的小程序发出来给大家玩,,,,现在主要是把思路给大家!~~







[原创]DVD管理系统项目之一--使用IO流模拟SQL



问题说明:


集合中保存的数据都在内存中,在关闭程序后就消失了,,所以我们用一个TXT文件来保存数据,,

类似于数据库的操作,,,只是简化了,,增删改查,,,,只在必要时,进行数据的交互。

先上图:


上图是文件结构,

我这里推荐用反射来获取相对地址,,你可以试试,,


我的代码如下:
  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. /*
  2.          * io流
  3.          */
  4.         // 读取mysql
  5.         String[] readSQL() throws IOException {
  6.                 String[] str;
  7.                 StringBuffer sb = new StringBuffer();
  8.                 FileReader fileReader = null;
  9.                 fileReader = new FileReader("DVDsql.txt");
  10.                 char[] buf = new char[1024];
  11.                 int num = 0;
  12.                 while ((num = fileReader.read(buf)) != -1) {
  13.                         sb.append(new String(buf, 0, num));
  14.                 }

  15.                 fileReader.close();
  16.                 str = split(sb);
  17.                 return str;
  18.         }

  19.         // 切割器
  20.         String[] split(StringBuffer sb) {
  21.                 return sb.toString().split("\r\n");
  22.         }

  23.         // 保存
  24.         void toSave() {
  25.                 try {
  26.                         FileWriter save = new FileWriter("DVDsql.txt", true);
  27.                         for (DVD eachDVD : myDVD) {
  28.                                 String eachDVDName = eachDVD.getName();
  29.                                 save.write(eachDVDName + "\n");
  30.                         }
  31.                 } catch (IOException e1) {
  32.                         // TODO Auto-generated catch block
  33.                         e1.printStackTrace();
  34.                 }
  35.         }
复制代码



如果你有更好的解决代码,可以和我交流,十分感谢。。。。




----------------------  ASP.Net+Android+IO开发S .Net培训 、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值