服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用java实现html文件代替数据库存储数据

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;}
                }


            }

        }

}

扫描关注微信公众号