東京電力の電気使用状況csvファイルを取得してみたよ


Androidアプリで、今日公開された東京電力の電気使用状況csvファイルを取得してみました。
意外と簡単にファイル取得って出来るのね。
前回のボタンを押した時のイベントでcsvファイルを取得する様にしてあります。

ネットに接続させる方法はこちら

  • URLを設定する
  • 接続するためのオブジェクトを取得する
  • データのGETを設定する
  • 設定したURLへ接続を開始する
  • データ取得後、接続を閉じる

と言う感じの流れでデータの取得が出来ました。

サンプルはこんな感じ

  1. public void onClick(View arg0) {
  2.         if(arg0 == Btn01){
  3.             try{
  4.                 String array[] = null;
  5.                 String nowPeak = "No Data";
  6.  
  7.                 /* データ取得 */
  8.                 URL url = new URL("http://www.tepco.co.jp/forecast/html/images/juyo-j.csv");
  9.                 HttpURLConnection http = (HttpURLConnection)url.openConnection();
  10.                 http.setRequestMethod("GET");
  11.                 http.connect();
  12.  
  13.                 /* データ読込 */
  14.                 BufferedReader reader = new BufferedReader(new InputStreamReader(http.getInputStream()));
  15.                
  16.                 /* 解析 */
  17.                 while (true){
  18.                     String line = reader.readLine();
  19.                     if ( line == null ){
  20.                         break;
  21.                     }
  22.                     if(line.indexOf(",") != -1){
  23.                         array = line.split(",");
  24.                         if(!(line.substring(0,4)).equals("DATE")){
  25.                             if(!array[2].equals("0")){
  26.                                 nowPeak = array[1] + "のピーク電力は" + array[2] + "万kW";
  27.                             }
  28.                         }
  29.                     }
  30.                 }
  31.  
  32.                 /* 文字列表示 */
  33.                 Btn01.setText(nowPeak);
  34.                 /* 接続終了 */
  35.                 http.disconnect();
  36.                 reader.close();
  37.             /* エラー処理 */
  38.             }catch(Exception e){
  39.                 Btn01.setText(e.toString());
  40.             }
  41.         }
  42.     }

ここでURLを指定して、ファイルに接続しに行くには

URL url = new URL("http://www.tepco.co.jp/forecast/html/images/juyo-j.csv");
HttpURLConnection http = (HttpURLConnection)url.openConnection();
http.setRequestMethod("GET");
http.connect();

続いてはデータを読み込むには

BufferedReader reader = new BufferedReader(new InputStreamReader(http.getInputStream()));

後、Manifestファイルにインターネットに接続するよ?って宣言が必要です。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

これでcsvファイルを読み込んで、最新の電力ピーク状況を取得出来ます。

ただし、これだとボタンを押す毎にファイルを取得しに行ってしまうのが問題ですね。
データを保存して、時間が経っていたらファイルを取得するように変更する必要があるかな。


Tags:

Leave a Reply