6.ファイルとデータベース 6-1 ファイルの入出力 2つの方法 ①内部記憶装置にファイルを保存する。 ②外部記憶装置(SDカード)にファイルを保存 1. 内部記憶装置の入出力 関連クラス android.app.Activityクラス FileInputStream openFileInput(String path) 入力ストリームをオープンする FileOutputStream openFileOutput 出力ストリームをオープンする。 (String path, int mode) プログラム例(その1) package jp.eclipse; import java.io.*; import android.app.*; import android.content.*; import android.os.*; import android.view.*; import android.view.View.*; import android.widget.*; public class InnerFileActivity extends Activity { Button [] button = new Button[2]; EditText etext; プログラム例(その2) /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); for(int i=0;i<button.length;i++) button[i]=new Button(this); button[0].setText("読込み"); button[1].setText("書込み"); etext=new EditText(this); etext.setLines(3); LL.addView(etext); プログラム例(その3) for(int i=0;i<button.length;i++) { LL.addView(button[i]); button[i].setOnClickListener(new FileClickListener()); } } class FileClickListener implements OnClickListener { public void onClick(View v) { if(v == button[0]) { try { FileInputStream finS= openFileInput("Test.txt"); BufferedReader breader = new BufferedReader(new InputStreamReader(finS)); StringBuffer sbuff=new StringBuffer(); プログラム例(その4) String str; while((str=breader.readLine())!=null) sbuff.append(str); etext.setText(sbuff); } catch(Exception e){} } else { try { FileOutputStream foutS= openFileOutput("Test.txt", Context.MODE_WORLD_READABLE); プログラム例(その5) BufferedWriter bwriter = new BufferedWriter(new OutputStreamWriter(foutS)); bwriter.write(etext.getText().toString()); bwriter.flush(); foutS.close(); } catch(Exception e){} } } } } プログラム例(その5) テキストウィジェットに入力して 「書込み」ボタンをクリック テキストウィジェットを変更して 「読込み」ボタンをクリック すると 元にもどることを確認 2. 外部記憶装置の入出力 ①AndroidManifest.xmlにパーミッションを指定する。 … </application> <user-permission android:name= android.permission.WRITE_EXTERNAL_STRAGE” /> </manifest> ②プログラム上で,外部記憶上のディレクトリを取得し,扱うファイルを 作成 File dir = new File(Environment.getExternalStrageDirectory(), “DataSample”); if(dir.exists()==false) dir.mkdir(); f=new File(dir,”sample.dta”); 3. ファイル一覧 (Java.io パッケージのlist()メソッドで下位のディレクリのファイル一覧を取り出す) package jp.eclipse; import java.io.*; import java.io.File; import android.app.*; import android.os.*; import android.widget.*; public class FiledirActivity extends Activity { ListView lview; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL =new LinearLayout(this); LL.setOrientation(LinearLayout.HORIZONTAL); setContentView(LL); lview=new ListView(this); File f=new File("data/data/"+getPackageName()); String[] str =f.list(); ArrayAdapter<String> A= new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1,str); lview.setAdapter(A); LL.addView(lview); } } ファイル一覧実行例
© Copyright 2024 ExpyDoc