首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据持久化

数据持久化
EN

Code Review用户
提问于 2015-03-10 00:04:33
回答 1查看 308关注 0票数 4

我想知道我是否能得到一些关于我创建的库的反馈,以便在网上持久化数据。

JitterPushDemo.java

代码语言:javascript
复制
public class JitterPushDemo {

    public static void main(String[] args) {

        Jitter jitter = new Jitter("scores");


        // create hash map to map scores to players

        HashMap<String, String> map = new HashMap<String, String>();
        map.put("Bob", "300");
        map.put("Sam", "500");

        // push data online to jitter object
        jitter.pushData(map);

    }

}

JitterPullDemo.java

代码语言:javascript
复制
public class JitterPullDemo {

    public static void main(String[] args) {

        Jitter jitter = new Jitter("scores");

        // now pulling data from online and iterating
        for (Map.Entry<String, String> item: jitter.pullData().entrySet()) {
            System.out.println("Player: " + item.getKey());
            System.out.println("Scores: " + item.getValue());
        }  

    }

}

源代码

代码语言:javascript
复制
package org.main;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONObject;

public class Jitter {

    URL location;
    String thing;

    public Jitter(String thing) {
        this.thing = thing;
    }

    private void setLocation(String place) {

        try 
        {
            location = new URL(place);
            location.openConnection();
        }

        catch (Exception e) 
        {

        }

    }

    public String readData() {

        InputStream dataStream = null;
        InputStreamReader read = null;
        String result = ""; int value;

        try 
        {
            dataStream = location.openStream();
            read = new InputStreamReader(dataStream);

            while ((value = read.read()) != -1)
                result += String.valueOf((char) value);
        }

        catch (Exception e)
        {

        }

        return result;
    }

    public void pushData(HashMap<String, String> map) {

        String url = "https://dweet.io/dweet/for/" + thing + "?";

        for (Map.Entry<String, String> item : map.entrySet()) {
            String k = URLEncoder.encode(item.getKey());
            String v = URLEncoder.encode(item.getValue());
            String sub = k + '=' + v + "&"; url += sub;
        }

        try 
        {
            setLocation(url);
        }

        catch (Exception e) 
        {

        }

        readData();

    }

    public void pushData(String key, String value) {
        String url = "https://dweet.io/dweet/for/" + thing + "?";
        setLocation(url + key + "=" + value); readData();
    }

    public String pullData(String key) {

        setLocation("https://dweet.io/get/latest/dweet/for/" + thing);
        JSONArray main = new JSONObject(readData()).getJSONArray("with");
        JSONObject data = ((JSONObject) main.get(0)).getJSONObject("content");

        return data.optString(key);
    }

    public HashMap<String, String> pullData() {

        setLocation("https://dweet.io/get/latest/dweet/for/" + thing);
        JSONArray main = new JSONObject(readData()).getJSONArray("with");
        JSONObject data = ((JSONObject) main.get(0)).getJSONObject("content");

        HashMap<String, String> map = new HashMap<String, String>();

        for (String key : data.keySet()) {
            map.put(key, data.optString(key));
        }

        return map;
    }

}
EN

回答 1

Code Review用户

发布于 2015-03-10 01:02:16

  • 一开始,您的代码不包含注释。注释对于了解代码的功能非常有用。
  • 您的代码非常模糊。什么是字符串;//用户名?你有必要用更多的描述来描述这个问题。setLocation()我注意到它设置了子目录。你可以说得更具体些。
  • 在Netbeans 8中,URLEncoder.encode被标记为不推荐使用。您可能需要考虑一种更前向兼容的替代方案:公共静态字符串编码(字符串s,字符串enc);
  • 字符串都是硬编码的。当您将所有这些类型的东西放在一个地方时,维护代码就容易多了。
  • 你在吃你的错误。这太糟了。错误告诉你出了什么问题。当你吃错误的时候,你会引起众神的愤怒;你永远不会知道你的代码何时不起作用。
票数 4
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/83699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档