【Android】SDカードにテキストデータを書き込む

投稿者: | 2011年3月5日

SDカードにテキストデータを書き込むサンプル。
画面は一つのEditTextViewと一つのButtonから構成されており、
Buttonを押すとEditTextViewに入力された内容をSDカードに書き込んでいる。

package com.lesson.sdcard;

// インポートは省略

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

		final String PATH =
			Environment.getExternalStorageDirectory().toString() +
			File.separator +
			this.getPackageName();

		Log.d(getPackageName(), "Path:" + PATH);


        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

				// SDカードのパスをチェック
				File f = new File(PATH);
				if( !f.exists() && !f.mkdir() ){
					return;
				}


				final String fileName = PATH + File.separator + "test.txt";
				OutputStreamWriter osw = null;

				try {
					osw = new OutputStreamWriter(new FileOutputStream(fileName));

					CharSequence txt = ((EditText)findViewById(R.id.editText1)).getText();
					osw.write(txt.toString(),0,txt.length());


				} catch (FileNotFoundException e) {
					// TODO 自動生成された catch ブロック
					e.printStackTrace();
				} catch (IOException e) {
					// TODO 自動生成された catch ブロック
					e.printStackTrace();
				}
				finally{
					try {
						if( osw != null )
							osw.close();
					} catch (IOException e) {
						// TODO 自動生成された catch ブロック
						e.printStackTrace();
					}

					osw = null;
				}


			}
		});
    }
}

ボタンを押すと、
/mnt/sdcard/com.lesson.sdcard/
以下にtext.txtという名前でファイルが保存される。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です