黑马程序员技术交流社区
标题:
[原创]DVD管理系统项目之三--使用io流模拟迷你SQL
[打印本页]
作者:
万琪
时间:
2013-6-18 19:33
标题:
[原创]DVD管理系统项目之三--使用io流模拟迷你SQL
本帖最后由 Super_Class 于 2013-6-18 20:18 编辑
前言:
没人顶,没加分,没动力啊!!!!!!!!!!!!
{:soso_e109:}
这个项目我做起来感觉还是满综合的,,基本覆盖到了java基础的全部内容,,我发帖的思路是由易到难得,,
结合实例帮助新手理解Java编程思想。。全部讲完之后,,我会把源代码和做好的小程序发出来给大家玩,,,,现在主要是把思路给大家!~~
[
原创
]
DVD管理系统项目之一--使用IO流模拟SQL
问题说明:
集合中保存的数据都在内存中,在关闭程序后就消失了,,所以我们用一个TXT文件来保存数据,,
类似于数据库的操作,,,只是简化了,,增删改查,,,,只在必要时,进行数据的交互。
先上图:
QQ截图20130618192717.png
(16.17 KB, 下载次数: 0)
下载附件
2013-6-18 19:27 上传
上图是文件结构,
我这里推荐用反射来获取相对地址,,你可以试试,,
我的代码如下:
// 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界面。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2