黑马程序员: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培训、期待与您交流!
----------------------
----------------------
前言:
这个项目我做起来感觉还是满综合的,,基本覆盖到了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培训、期待与您交流!
----------------------
相关文章推荐
- JAVA项目实战<迷你DVD管理系统>
- 黑马程序员:DVD管理系统项目之一--核心集合的选择问题
- 黑马程序员: DVD管理系统项目之二--集合排序的动态刷新问题
- 黑马程序员:DVD管理系统项目之四--初识图形用户界面
- Redmine使用——Redmine项目管理系统工作逻辑
- 慕课网 项目实战 使用struts2和hibernate开发学生信息管理系统
- 项目分享:通过使用SSH框架的公司-学员关系管理系统(CRM)
- 黑马程序员-模拟学校信息管理系统的菜单
- 黑马程序员_java_基础加强_模拟银行管理系统
- 项目分享:通过使用SSH框架的公司-学员关系管理系统(CRM)
- 在前后端分离的项目中,后台使用shiro框架时,怎样使用它的会话管理系统(session),从而实现权限控制
- 迷你DVD管理系统
- 黑马程序员__模拟交通灯管理系统
- 项目管理系统-禅道使用体会
- 黑马程序员--7K项目--实现简单的交通灯管理系统
- 使用trac系统进行项目管理
- 黑马程序员---交通灯管理系统项目总结
- java DVD迷你管理系统
- 耗时两年,终于--我的新一代敏捷项目管理系统终于开发出来了!!欢迎下载使用
- 员工管理系统(集合与IO流的结合使用 beta1.0 ArrayList<Employee>)