用Java实现HTML文件代替数据库存储数据

80酷酷网    80kuku.com

  数据|数据库

Java在编写一些图形化的小程序时,有时也要去存储少量的数据,如果用JDBC来连接数据库,就会使程序速度减慢,而且及不方面,我们可以用Java中的文件来代替数据库保存数据,这样不但可以实现存储的功能,而且不用考虑数据频繁的存取,可以把文件定义成为HTML文件,并将存储的数据以表格的方式显示,这样就可以直接在网页中看到数据,下面是我写的一个小的文件存储数据的实例:

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import java.io.*;import javax.swing.*;public class filework extends JFrame implements ActionListener {    JPanel p;    JButton b0,b1,b2;    JTable tab;    Object my[][] = new Object[50][3];    int a[]=new int[50];    int b[]=new int[50];     int j=0,rows=0;     int k=0,shu=0;    String name,age;    String title[] = {"姓名", "年龄", "身高"};    BufferedReader in;    int i = 0;    public filework() {        super("数据轮回");        this.setSize(300, 300);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        p = new JPanel();        tab = new JTable(my, title);        b0 = new JButton("添加");        b1 = new JButton("打开");        b2 = new JButton("保存");        b1.addActionListener(this);        b2.addActionListener(this);        b0.addActionListener(this);        p.add(b0);        p.add(b1);        p.add(b2);        this.getContentPane().add(new JScrollPane(tab), "Center");        this.getContentPane().add(p, "South");        this.setVisible(true);    }    public void fileopen() {        try{  JFileChooser choose=new JFileChooser(".");  int sis=choose.showOpenDialog(this);  String name=choose.getSelectedFile()+"";  if(sis==JFileChooser.APPROVE_OPTION){  in=new BufferedReader(new FileReader(name));  String over=null;  String line;  while((line=in.readLine())!=null){  over=over+line;  }  for(int i=0;i<a.length;i++){  a[i]=over.indexOf("<td>")+4;  b[i]=over.indexOf("</td>");  my[rows][k]=over.substring(a[i],b[i]);  over=over.substring(b[i]+4,over.length());  k=k+1;  if(k==3){k=0;rows=rows+1;}  }  }  }catch(Exception ie){}    }    public static void main(String[] args) {        filework filework = new filework();    }    public void actionPerformed(ActionEvent e) {        if (e.getSource() == b1) {           fileopen();        }            if (e.getSource() == b2) {         JFileChooser save=new JFileChooser(".");         int result=save.showSaveDialog(null);         String s1=save.getSelectedFile()+"";         if(result==JFileChooser.APPROVE_OPTION){        try {            OutputStreamWriter out = new OutputStreamWriter(new                    FileOutputStream(s1));            String s2="<html><head></head><body>";s2=s2+"<table border=\"1\" width=\"50%\" bordercolor=\"green\" align=\"center\">";            s2=s2+"<tr>";            s2=s2+"<th>"+"姓名"+"</th>";            s2=s2+"<th>"+"年龄"+"</th>";            s2=s2+"<th>"+"身高"+"</th>";            s2=s2+"</tr>";          for(int shu=0;shu<rows;shu++)           {                s2=s2+"<tr align=\"center\">";                s2=s2+"<td>"+my[shu][0].toString().trim()+"</td>";                s2=s2+"<td>"+my[shu][1].toString().trim()+"</td>";                s2=s2+"<td>"+my[shu][2].toString().trim()+"</td>";                s2=s2+"</tr>";           }        s2=s2+"</table></body></html>";         out.write(s2);         out.close();         for(int i1=0;i1<50;i1++){           my[i1][0]="";           my[i1][1]="";           my[i1][2]="";           }            rows=0;           this.repaint();           JOptionPane.showMessageDialog(null,"保存数据成功!","information",JOptionPane.QUESTION_MESSAGE);        } catch (Exception ex1) {        }         }            }            if(e.getSource()==b0){                JTextField message[]=new JTextField[6];                message[0]=new JTextField("请输入姓名:");                message[0].setEditable(false);                message[1]=new JTextField();                message[2]=new JTextField("请输入年龄:");                message[2].setEditable(false);                message[3]=new JTextField();                message[4]=new JTextField("请输入身高:");                message[4].setEditable(false);                message[5]=new JTextField();                String str[]={"确认","取消"};                int go=JOptionPane.showOptionDialog(null, message, "添加用户",JOptionPane.YES_OPTION, JOptionPane.INFORMATION_MESSAGE, null, str, str[0]);                if(go==0){                if(message[1].getText().equals("")&&                    message[3].getText().equals("")&&                    message[5].getText().equals("")){JOptionPane.showMessageDialog(null,"数据不能为空","ERROR",JOptionPane.ERROR_MESSAGE);}                else{                 my[rows][0]=message[1].getText();                 my[rows][1]=message[3].getText();                 my[rows][2]=message[5].getText();                 this.repaint();rows=rows+1;}                }            }        }}


分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: