您的位置:首页 > 职场人生

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

2013-06-18 20:30 323 查看
---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流!
----------------------

前言:

这个项目我做起来感觉还是满综合的,,基本覆盖到了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();

}

}

复制代码

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

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流!
----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: