国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[學習小筆記] Gson的基本使用

2019-11-08 02:20:47
字體:
來源:轉載
供稿:網友
今天在來記錄一下以前做過的關于gSon讀取的和存儲的簡單例子,記錄一下基本的使用方法,以免自己忘記了難以查詢。 首先需要關于gSon的jar包: 鏈接:http://pan.baidu.com/s/1pKZIb27 密碼:xtm5 我學習的方向是java,就以一個簡單的swing窗體來簡單的展示一下gSon的基本使用方法。在這個窗體中我們主要實現登錄和注冊的功能,但是不通過數據庫保存賬號,只通過gSon保存到該工程文件中。 首先我們先做一個簡單的窗體:public class Gson_test_1 { JFrame jframe; JLabel jl1, jl2; JTextField jf; JPassWordField jpf; JButton jb1, jb2; FileOutputStream fos = null; FileInputStream fis = null; List<Users> list = new ArrayList<Users>(); // 定義一個init方法用來調用顯示窗體 public void init() { jframe = new JFrame("登錄"); jframe.setLayout(new GridLayout(3, 2)); // 賬號 jl1 = new JLabel("賬號:"); jf = new JTextField(); // 密碼 jl2 = new JLabel("密碼:"); jpf = new JPasswordField(); // 按鈕 jb1 = new JButton("登錄"); jb2 = new JButton("注冊"); // 添加組件 jframe.getContentPane().add(jl1); jframe.getContentPane().add(jf); jframe.getContentPane().add(jl2); jframe.getContentPane().add(jpf); jframe.getContentPane().add(jb1); jframe.getContentPane().add(jb2); // 設置窗體 jframe.setVisible(true); jframe.setDefaultCloSEOperation(3); jframe.setBounds(200, 200, 400, 300); }} 這樣,一個簡單的swing窗體就創建好了,然后我們可以寫一個main方法先運行看一下。public static void main(String[] args) { new Gson_test_1().init();}

當然這個窗體是非常丑的,但是……無!所!謂! 好,接下來我們先給注冊按鈕添加事件,當用戶點擊注冊時就會把他填寫的賬號和密碼保存到本地文件中。// 為注冊按鈕添加事件jb2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub // 獲取輸入的賬號和密碼 String id = jf.getText(); String PSD = jpf.getText(); // Users是一個實體類,隨便編寫一個簡單的實體類就可以了 Users user = new Users(); user.setId(id); user.setPassword(psd); Gson gson = new Gson(); if (id.length() > 1 && psd.length() > 1) { try { // 實例化輸入流 fis = new FileInputStream("Users.txt"); // 創建字節數組,保存文件中的數據 byte[] data = new byte[(int) new File("Users.txt").length()]; // 讀取數據 fis.read(data); // 這里我們需要判斷一下這個文件里面是否包含數據,如果沒有數據的話是不能夠轉化成字符串的,不然會報錯 if(data.length == 0) { list.add(user); } else { // 轉化為字符串 String str = new String(data); // 如果此時文件中已經有數據了,這個時候我們就需要將gSon數據轉化為list集合,然后將用戶輸入的賬號和密碼添加到這個list集合當中 list = gson.fromJson(str, new TypeToken<List<Users>>(){}.getType()); list.add(user); } // 然后我們將添加了新用戶賬號的集合再以gSon的格式轉化成字符串,最后輸出保存,覆蓋掉原先的文件內容 String db = null; db = gson.toJson(list); fos = new FileOutputStream("Users.txt"); // 輸出 fos.write(db.getBytes()); // 這里就是彈出一個提示框 JOptionPane.showMessageDialog(null, "注冊成功!", "消息提示", 1); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.PRintStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }}); 注冊按鈕的功能就基本實現了,接下來我們來實現登錄按鈕的功能。主要的實現步驟都是差不多的,只是登錄中對讀取到的數據進行了一個遍歷,接下來看源碼:// 為登錄按鈕添加點擊事件jb1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub // 獲取輸入的賬號和密碼 String id = jf.getText(); String psd = jpf.getText(); if (id.length() > 1 && psd.length() > 1) { try { // 實例化輸入流 fis = new FileInputStream("Users.txt"); // 創建字節數組,保存文件中的數據 byte[] data = new byte[(int) new File("Users.txt").length()]; // 讀取數據 fis.read(data); // 轉化為字符串 String str = new String(data); Gson gson = new Gson(); // 用list集合保存查詢到的用戶信息 list = gson.fromJson(str, new TypeToken<List<Users>>() {}.getType()); // 這里就是用for循環匹配用戶輸入的賬號和密碼是否正確 for (Users u : list) { if (id.equals(u.getId()) && psd.equals(u.getPassword())) { JOptionPane.showMessageDialog(null, "登錄成功!", "消息提示", 1); break; } } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }});

這樣就是gSon的基本的使用方法了。只需要懂最基本的用法,在其他的語言中也可以靈活的運用,比如在Android中實現本地存儲,簡單的一些也是可以用gSon來完成的。當然了,我學習的還只是最基礎的一些用法,以后學的更加深入了更加了解了再來逐一完善。

最后補充一下創建本地文件的位置,要是有初學者的話可以更加清楚:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莲花县| 通辽市| 杭锦后旗| 新安县| 普格县| 湖南省| 棋牌| 武城县| 淮安市| 长兴县| 师宗县| 偏关县| 庄浪县| 桐梓县| 连州市| 贞丰县| 海盐县| 临夏县| 兴国县| 宝鸡市| 嵊州市| 海盐县| 竹山县| 孟州市| 阿克苏市| 文登市| 错那县| 乃东县| 西畴县| 裕民县| 新丰县| 广德县| 光泽县| 岫岩| 当雄县| 龙游县| 安陆市| 潍坊市| 仁化县| 南昌市| 平泉县|