用Java實現HTML檔案代替資料庫儲存資料

來源:互聯網
上載者:User
資料|資料庫

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


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。