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

2016-02-19 18:51 56 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的用Java实现HTML文件代替数据库存储数据,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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;ia.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();
  }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)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="htmlhead/headbody";
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;shurows;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;i150;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;}
        }
      }
    }
}

来源:http://www.tulaoshi.com/n/20160219/1619255.html

延伸阅读
原理跟用java生成jsp的servlet差不多。我们可以用printStream来向html文件里输出数据。 先创建一个StringBuilder对象,通过append方法来为其添加html语句。如下面例子所示: 代码如下: StringBuilder sb = new StringBuilder(); Properties fileProperties = getProperties("file"); Properties sqlProperties = getProperties("sql"); P...
数据结构描述的是数据之间的关系。C++数据结构的存储方式有顺序、链接、索引、散列等形式,对数据的处理通常包括输入、输出、查找、更新、排序、插入、删除等,当数据的存储方式不同时,相应的处理实现算法也不尽相同。如何采用一种简便明了的方法分析C++的数据结构特点及各种存储方式、处理方式之间的异同成为了计算机应用专业教育的一个...
标签: Web开发
1、引言 数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。但是,如果我们想动态的显示图片,上述方法就不能满足需要了。我们必须把图片存入数据库,然后...
代码如下所示: 代码如下: /** *ConnectionUtil .java * * */ package com.cai.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties ; public class ConnectionUtil {  /**   * 1   *在方法中固化连接参数   * @return  数据库连接   */  public Connection...
网上经常有人问如何把图像存入数据库中,原先我也是不得要领。经过多方指点和自己在开发过程中的摸索,终于解决这一问题。下面给出用VC,VB如何操作图像文件存取数据库的原码,帮助一些还没有掌握方法的朋友(均用ADO连接数据库)。 一、VC把一个文件存入数据库 CFile imagefile; if(0 == imagefile.Open("d:usermp.bmp",CFile::modeRead)) ...

经验教程

697

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部