スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

openFileOutput/openFileInput

FileWriter/FileReader の記事では、Javaで標準的に使われるやり方でファイルアクセスを行いました。

Androidではファイルの保存場所が厳格に決まっているため、このやり方では、ファイルの保存場所にパスを通す必要があります。

この点、Contextクラスの openFileOutput/openFileInput を使うとファイルの保存場所を気にすることなくファイルアクセスが可能になります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</EditText>
</LinearLayout>



package sample.basic;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;

public class HelloAndroid extends Activity{

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

try{
FileOutputStream fos=openFileOutput("sample.txt", MODE_PRIVATE);
String text="openFileOutputで書き込み";
fos.write(text.getBytes());
fos.close();
}catch(FileNotFoundException e){
}catch(IOException e){
}

try{
FileInputStream fis=openFileInput("sample.txt");
EditText editText1=(EditText)findViewById(R.id.editText1);
byte buffer[]=new byte[100];
fis.read(buffer);
editText1.setText(new String(buffer).trim());
fis.close();
}catch(FileNotFoundException e){
}catch(IOException e){
}
}
}


実行結果:
20111204_3


まず書き出しですが、openFileOutput()メソッドは、ストリームを取得し、指定したファイルを書き出しのために開くメソッドです。

public abstract FileOutputStream openFileOutput (String name, int mode)

第一引数は開きたいファイル名を指定し、第二引数は操作モードを指定します。モードは、Contextクラスに用意されているクラスフィールドを使って指定します。

MODE_PRIVATE はデフォルトのモードです。他のプログラムからのアクセスが必要ない場合にこのモードを使います。MODE_APPEND は既存のデータの後に追記するモードです。外部からファイルの読み込みを行えるようにするときは MODE_WORLD_READABLE にします。外部からファイルの書き込みを行えるようにするときは MODE_WORLD_WRITEABLE にします。

ファイルにデータを書き出すのは write()メソッドです。

void write(byte[] b)

String型の文字列をbyte型の配列にするためにgetBytes()メソッドを使います。

byte[] getBytes()



次に読み込みのほうは、openFileInput()メソッドでストリームを取得します。

public abstract FileInputStream openFileInput (String name)

引数にはファイル名を指定します。

read()メソッドは、読み込んだデータをそのままbyte配列にコピーしますので、あらかじめ配列を用意し、それにデータをロードしていきます。

int read(byte[] b)



関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/80-81d58a93
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。