C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

コンテキスト(Context)クラスのopenFileInputメソッドからFileInputStreamインスタンスを取得し, これを利用することでファイルへの文字データまたはバイナリデータをファイルから読み込むことができる.

文字データをファイルから読み出す

ファイル(sample.txt)を読み出し, テキストビューに表示する.
    • openFileInputメソッドの引数にファイル名を指定して, FileInputStreamインスタンスを取得する.
    • BufferedReaderの内部にInputStreamWriterをラップしたBufferedReaderオブジェクトを生成する. BufferReaderを使用しなくてもファイルの読み込みは行えるが, readメソッドやreadLineメソッドが呼ばれるたびにファイルにアクセスするので効率がよくない.
    • readLineメソッドで1行読み出す.
    • closeメソッドでクローズする.
package com.moonlight_aska.android.fileread01;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;

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

    TextView text = (TextView)findViewById(R.id.textview_id);
    BufferedReader in = null;
    try {
      FileInputStream file = context.openFileInput("sample.txt");
      in = new BufferedReader(new InputStreamReader(file));
      text.setText(in.readLine());
      in.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}


バイナリデータをファイルから読み出す

バイナリデータのファイルを読み出し, 内容をダンプする.
    • openFileInputメソッドの引数にファイル名を指定して, FileInputStreamインスタンスを取得する.
    • BufferedInputStreamオブジェクトを生成する. BufferedInputStreamを使用しなくてもファイルの読み込みは行えるが, readメソッドが呼ばれるたびにファイルにアクセスするので効率がよくない.
    • readメソッドでバイナリデータをファイルから読み込む.
    • closeメソッドでクローズする.
package com.moonlight_aska.android.fileread02;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;

public class FileRead02 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    Context context = this;

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    EditText edit = (EditText)findViewById(R.id.edittext_id);
    BufferedInputStream in = null;
    try {
      FileInputStream file = context.openFileInput("sample.bin");
      in = new BufferedInputStream(file);
      byte buf[] = new byte[256];
      in.read(buf, 0, 256);
      String str = null;
      for(int i=0; i<256; i++) {
        if(i % 5 == 4) {
          str = String.format("0x%02x\n", buf[i]);
        }
        else {
          str = String.format("0x%02x, ", buf[i]);
        }
        edit.append(str);
      }
      file.close();
    } catch(IOException e) {
      e.printStackTrace();
    }
  }
}





このページへのコメント

すみません。自己完結いたしました。

Posted by はる 2012年01月06日(金) 22:20:57

突然質問失礼いたします。
スクリプトファイルの読み込み処理で詰まってたどり着きました。
記事にあるsample.txtはどこにおかれているのでしょうか?

Posted by はる 2012年01月06日(金) 11:49:14

コメントをかく


ユーザーIDでかく場合はこちら
「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

AD



管理人のみ編集できます