本帖最后由 Super_Class 于 2013-6-18 20:18 编辑
前言:
没人顶,没加分,没动力啊!!!!!!!!!!!!{:soso_e109:}
这个项目我做起来感觉还是满综合的,,基本覆盖到了java基础的全部内容,,我发帖的思路是由易到难得,,
结合实例帮助新手理解Java编程思想。。全部讲完之后,,我会把源代码和做好的小程序发出来给大家玩,,,,现在主要是把思路给大家!~~
[原创]DVD管理系统项目之一--使用IO流模拟SQL
问题说明:
集合中保存的数据都在内存中,在关闭程序后就消失了,,所以我们用一个TXT文件来保存数据,,
类似于数据库的操作,,,只是简化了,,增删改查,,,,只在必要时,进行数据的交互。
先上图:
上图是文件结构,
我这里推荐用反射来获取相对地址,,你可以试试,,
我的代码如下:- // io入口!!!!!!!!!!!!!!!!!!!!!
- // 批量导入---添加
- addall.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- // TODO Auto-generated method stub
- JFileChooser jf = new JFileChooser();
- jf.showOpenDialog(MiniDVD.this);
- try {
- File file = jf.getSelectedFile();
- FileWriter fw = new FileWriter("DVDsql.txt", true);
- FileReader fr = new FileReader(file);
- char[] buf = new char[1024];
- int num = 0;
- while ((num = fr.read(buf)) != -1) {
- fw.write((new String(buf, 0, num)));
- }
- fr.close();
- fw.close();
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
复制代码- delAll.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- // TODO Auto-generated method stub
- try {
- FileWriter clean = new FileWriter("DVDsql.txt", false);
- clean.write("\r\n");
- clean.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- labDialog.setText("所有数据已删除!");
- d.setVisible(true);
- }
复制代码- /*
- * io流
- */
- // 读取mysql
- String[] readSQL() throws IOException {
- String[] str;
- StringBuffer sb = new StringBuffer();
- FileReader fileReader = null;
- fileReader = new FileReader("DVDsql.txt");
- char[] buf = new char[1024];
- int num = 0;
- while ((num = fileReader.read(buf)) != -1) {
- sb.append(new String(buf, 0, num));
- }
- fileReader.close();
- str = split(sb);
- return str;
- }
- // 切割器
- String[] split(StringBuffer sb) {
- return sb.toString().split("\r\n");
- }
- // 保存
- void toSave() {
- try {
- FileWriter save = new FileWriter("DVDsql.txt", true);
- for (DVD eachDVD : myDVD) {
- String eachDVDName = eachDVD.getName();
- save.write(eachDVDName + "\n");
- }
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
复制代码
如果你有更好的解决代码,可以和我交流,十分感谢。。。。
另外,下一步要解决的问题:完善的AWT界面。。
|