そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それで

Similar documents

日 力力 生 行行 入 入 力力 生 用 方

2 // TODO Auto-generated method stub float x = event.getx(); float y = event.gety(); String action = ""; switch(event.getaction()) { case MotionEvent.

Taro-korattsu.jtd

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー

補足資料 キーイベント処理サンプル package jp.co.keyevent; import android.app.activity; import android.os.bundle; import android.view.keyevent; import android.widget.t

ファイルを直接編集する画面を切り替えることができる. 図 3 標準のレイアウトを削除する (2) グラフィカル レイアウト画面で LinearLayout(Vertical) を追加するパレットウィンドウの レイアウト の中にある LinearLayout(Vertical) をドラッグして, 編集

android2.indd

Microsoft Word - Android_SQLite講座_画面800×1280

補足資料 インテントによるアプリケーションとアクティビティの呼出し Android アプリのキモとなるインテントとは何? インテント ( 呼び出し要求 ) とは Android 独自の機能です 簡単にいえばアプリケーションや他のアクティビティを呼び出す機能ですが 他のアプリケーションを機能や扱えるデ

Hello, Android

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

オブジェクト指向プログラミング・同演習 5月21日演習課題

PowerPoint プレゼンテーション

File IO

Prog2_10th

2-2. TableLayout TableLayout は任意のビューを表形式で配置したい場合に利用する (HTML の Table に近いイメー ジ ) 2-3. FrameLayout ビューを重ねて表示するためのレイアウト 後から配置した部品が前面に来る仕様となっている 3. まとめ レイア

Microsoft Word - _Intent.doc


Prog2_2nd

Prog2_2nd

Android Layout SDK プログラミング マニュアル

Prog2_5th

Prog1_11th

JavaプログラミングⅠ

日 用 用 面 示 用 用 方

Java演習(4) -- 変数と型 --

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

PowerPoint Presentation

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 1

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

mazec テクニカルガイド第5版(Android版)

Prog2_10th

Microsoft Word - Android_DI講座_画面800×1280

非推奨メソッド等の掲載について

** 平成 16 年度 FE 午後問題 Java** 示現塾プロジェクトマネージャ テクニカルエンジニア ( ネットワーク ) など各種セミナーを開催中!! 開催日 受講料 カリキュラム等 詳しくは 今すぐアクセス!! 平成 16

ドコモメール連携アプリ開発ガイド(新IF対応)

Microsoft Word - A05_AndroidプログラミングJUMP_画面800×1280

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Microsoft Word - Android_DI講座_画面800×1280

K227 Java 2

Taro-twokansu3.jtd

JavaプログラミングⅠ

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

Prog2_10th

Prog1_15th

TestDesign for Web

新・明解Java入門

手書認識 グラフ描画 Step2-2 手書認識 : 認識結果を PaintPanel で描画する < 属性付き文字列 AttributedString> 標準出力では分かりにくいうえに認識結果を使えないので 認識するごとに PaintPanel に文字を描画することにする ここで 数式はただの文字列

ファイル入出力Ⅱ

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

Microsoft PowerPoint - prog13.ppt

c02-android_重版.indd

JavaプログラミングⅠ

Microsoft PowerPoint - prog13.ppt

PowerPoint Presentation

PowerPoint Presentation

応用プログラミング 2004/11/23 データの入出力 データの入出力データをキーボードからコンピュータに入力することや CRT に表示すること, さらにハードディスク (HDD) や MO などに保存されているファイルからデータをコンピュータに読み込むことや ( 逆に ) データをこれらの装置に

文字列操作と正規表現

Microsoft Word - Android_SQLite講座_画面800×1280

ALG ppt

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

Prog2_6th

Prog2_6th

untitled

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

デジタル表現論・第6回

Prog2_6th

ファイル操作

android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:text="go"

Microsoft PowerPoint - OOP.pptx

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Java講座

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Prog1_13th


JAVA とテンプレート

問題1 以下に示すプログラムは、次の処理をするプログラムである

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Programming-C-9.key

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

I java A

ファイル入出力Ⅰ

デジタル表現論・第4回

Microsoft Word - CompA-Ex doc

GEC-Java

Android でサービスしよう! 日本 Android の会 2 月 21 日大阪セミナ- 有山圭二 ( 有限会社シーリス )

TechInstituteセキュリティ1日目.key

Microsoft Word - 原稿編集.doc

2

FW ファイルアップロード ダウンロード機能利用ガイド Version 年 9 月 21 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

GUIプログラムⅣ

リファレンス,配列 例外処理

Transcription:

Android: データを保存する方法 Android のアプリケーションで データを保存する方法を説明します 保存する方法としては以下のものがあります ファイルとして保存 Preference データベース (SQLite) ファイルへ書き込む Android のファイルへの書き出しはアクセス権限の設定部分があるので読み込みの openfileinput メソッドより 引数が増えています public abstract FileOutputStream openfileoutput (String name, int mode) をつかいます まずは 出力用ストリーム (OutputStream) インスタンスを openfileoutput() メソッドで取得します このとき第一引数で指定するファイル名は パス無しでファイル名のみを指定します ファイルパスは OS により Android アプリ毎に一意に決められますので アプリ側からパスを指定する事は出来ません 第二引数は操作モードです 以下の定数を指定します MODE_APPEND: 既存ファイルを追記モードで開きます MODE_PRIVATE: ローカルファイルを作成した Android アプリのみにアクセス許可を与える場合に指定します MODE_WORLD_READABLE: 他アプリから読み取り可能にします MODE_WORLD_WRITEABLE: 他アプリから書込み可能にします 複数指定したい場合は 上記定数を論理和で指定します 1

そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それでは 保存されているローカルファイルを読み込むときの方法をみてみましょう 読み込んだ文字列を EditText に表示する という例です try{ InputStream in = openfileinput( a.txt ); BufferedReader reader = new BufferedReader(new InputStreamReader(in, UTF-8 )); String s; EditText et = (EditText)findViewById(R.id.edittext01); while((s = reader.readline())!= null){ et.append(s); et.append( n ); reader.close(); catch(ioexception e){ e.printstacktrace(); ローカルファイルの読込みは openfileinput() メソッドを使います 引数にファイル名のみを指定して 入力ストリーム (InputStream) インスタンスを取得します その InputStream を使って BufferedReader インスタンスを生成します その BufferedReader インスタンスの readline() メソッドを使って 1 行ずつ読込んでいきます 2

ローカルファイルの削除方法 ローカルファイルの削除方法を説明します deletefile( a.txt ); 上記のように deletefile() メソッドを使用してファイル名を指定するだけです ファイルの削除が成功したか失敗したかは 戻り値によって返却されます true ならば削除成功 false ならば削除失敗です サンプルコード ) package io.fileaccess; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.io.outputstream; import java.io.outputstreamwriter; import java.io.printwriter; import android.app.activity; import android.os.bundle; import android.util.log; import android.widget.textview; public class FileAccessAndroid extends Activity { // ファイル名 private static final String LOCAL_FILE = "data.txt"; /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); 3

TextView tv = (TextView) this.findviewbyid(r.id.textview01); this.samplefileoutput();// データをファイル書き込み保存 tv.settext(" ファイル処理 :" + this.samplefileinput());// 読み込み 表示 /** * ファイル書き込み */ private void samplefileoutput() { OutputStream out; try { out = openfileoutput(local_file, MODE_PRIVATE MODE_APPEND); OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8"); PrintWriter writer = new PrintWriter(osw); // 追記する writer.append (" あいうえお "); writer.append (" かきくけこ "); writer.close(); catch (IOException e) { e.printstacktrace(); // samplefileoutput() private String samplefileinput() { InputStream in; String data;// メソッド返却データ String line;// ファイル 1 行データ格納用 StringBuilder sb;// ファイル全データ格納用 try { in = openfileinput(local_file); BufferedReader reader = 4

new BufferedReader(new InputStreamReader(in, "UTF-8")); sb = new StringBuilder(); // line に読み込み while ((line = reader.readline())!= null) { sb.append(line); Log.d("FileAccess", line); data = sb.tostring(); catch (IOException e) { data = e.getmessage(); return data;// データを返却 //samplefileinput() //class_end SharedPreferences キー項目と値のペアでデータを保存したい場合に利用します SharedPreferences.Editor editor = getsharedpreferences("favorite", 0); 保存できる値 int float long boolean String 保存 読み込みのためのメソッド putint(string key, int value) putfloat(string key, float value) putlong(string key, long value) putboolean(string key, boolean value) 5

putstring(string key, String value) getint(string key, int defvalue) getfloat(string key, float defvalue) getlong(string key, long defvalue) getboolean(string key, boolean defvalue) getstring(string key, String defvalue) ; 以下の様な形式でキー値と値がペアで保存されます <?xml version='1.0' encoding='utf-8' standalone='yes'?> <map> <string name="/pepin9876">this is my server name</string> <string name="/akina-dj">akina Camel: Akina DJ</string> <string name="/3121">discotheque Saloon : GLAM SLAM</string> <string name="/taiwanfm905">taiwanfm905</string> <string name="/stream">hiroshima</string> </map> つぎに clear() で消してみます editor.clear().commit();// 登録データを削除する データは 以下の様な形になります <?xml version='1.0' encoding='utf-8' standalone='yes'?> <map /> サンプルコード ) import android.app.activity; import android.content.sharedpreferences; import android.graphics.color; import android.os.bundle; 6

import android.view.view; import android.view.window; import android.widget.button; import android.widget.edittext; import android.widget.linearlayout; // プリファレンスの読み書き public class PreferencesEx extends Activity implements View.OnClickListener { private EditText edittext;// エディットテキスト private Button btnwrite;// 書き込みボタン private Button btnread; // 読み込みボタン // 初期化 @Override public void oncreate(bundle icicle) { super.oncreate(icicle); requestwindowfeature(window.feature_no_title); // レイアウトの生成 LinearLayout layout=new LinearLayout(this); layout.setbackgroundcolor(color.rgb(255,255,255)); layout.setorientation(linearlayout.vertical); setcontentview(layout); // エディットテキストの生成 edittext=new EditText(this); edittext.settext("",edittext.buffertype.normal); setllparams(edittext,240,50); layout.addview(edittext); // 書き込みボタンの生成 btnwrite=new Button(this); btnwrite.settext(" 書き込み "); btnwrite.setonclicklistener(this); setllparams(btnwrite); 7

layout.addview(btnwrite); // 読み込みボタンの生成 btnread=new Button(this); btnread.settext(" 読み込み "); btnread.setonclicklistener(this); setllparams(btnread); layout.addview(btnread); // ボタンクリックイベントの処理 public void onclick(view v) { if (v==btnwrite) { //SharedPreferences オブジェクトの取得 SharedPreferences pref=getsharedpreferences( "PreferencesEx",MODE_PRIVATE); // プリファレンスへの書き込み SharedPreferences.Editor editor=pref.edit(); editor.putstring("text",edittext.gettext().tostring()); editor.commit(); else if (v==btnread) { //SharedPreferences オブジェクトの取得 SharedPreferences pref=getsharedpreferences( "PreferencesEx",MODE_PRIVATE); // プリファレンスからの読み込み (3) edittext.settext(pref.getstring("text","")); // ライナーレイアウトのパラメータ指定 private static void setllparams(view view) { view.setlayoutparams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 8

// ライナーレイアウトのパラメータ指定 private static void setllparams(view view,int w,int h) { view.setlayoutparams(new LinearLayout.LayoutParams(w,h)); //class_end 9