Androidプログラミング日記 (仮)  

テキストファイル読み込み

あなたは

人目のプログラマーだよ。

Androidプログラミング日記 (仮).

 

 

 

 

今回は苦手なコードです

今回はあるフォルダからテキストファイルを読み込み中身を表示させるプログラミングを作成してみました。

色々な読み込み方法、読み込み場所があるみたいなのですが、今回はもともと作成されているassetフォルダにテキトーに作成したtextファイルを置いておき、それを読み込んでみようと思います。

試行錯誤した結果、すごく短く書く事ができたと思います。参考サイト様ありがとうございます。

 

assetsフォルダに入れたtextファイルを読み込み表示
その1のコードを使用して連続したデータを取り込み分解
今までの読み込みこんだデータを図形に変換してみた!
アプリケーション専用ファイルでの書き込み読み込み
アプリケーション終了→次回起動時までデータの保持
 

 
 
 

ファイル名「InputTextActivity.java」 いつものActivityファイル

package and.roid.inputtext;

import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.Display;
import android.view.Window;
import android.view.WindowManager;

public class InputTextActivity extends Activity {
	public float disp_w,disp_h;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        Window window = getWindow();
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        WindowManager manager = window.getWindowManager();
        Display disp = manager.getDefaultDisplay();
        disp_w = disp.getWidth();
        disp_h = disp.getHeight();
        setContentView(new InputTextView(this));

    }
}

                          

Activityファイルは、一番下の段のコードがたまに変わるだけでいつもこのまま使っています。

完全フルスクリーン仕様&画面の幅、高さを取得しています。

 

ファイル名「InputTextView.java」

package and.roid.inputtext;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class InputTextView extends View {
	InputTextActivity activity;//アクティビティクラスの登録準備
	String text;//表示文字登録準備
	static private final String FILE_PATH = "test1.txt";//ファイルパス

	//コンテキスト
	public InputTextView(Context context) {
		super(context);
		initInputText(context);
	}

	//ここでファイル読み込み
	private void initInputText(Context context) {
		//アクティビティクラス登録
		activity = (InputTextActivity)context;

		//ファイル読み込みなど操作するときはtry{}catch{}で囲む
		try{
			//元からあるassetsフォルダに入れたtextファイルを読み込む方法
			AssetManager assets = getResources().getAssets();
			InputStream in = assets.open(FILE_PATH);
			BufferedReader br = new BufferedReader(new InputStreamReader(in));
			String str;
			StringBuilder strs = new StringBuilder();
			while ((str = br.readLine()) != null) {
				strs.append(str);
			}
			br.close();
			text = strs.toString();

		}catch (Exception e){
			text = "読み込み失敗";
		}
	}

	//Viewを継承させるとここが自動的に呼ばれる
	protected void onDraw(Canvas c){
		setBackgroundColor(Color.WHITE);
		super.onDraw(c);
		Paint p = new Paint();

		p.setAntiAlias(true);
		p.setColor(Color.RED);
		p.setTextSize(15);
		c.drawText(text, 0, 100, p);
	}

}
						                      

ファイル読み込み方法は色々な方法があるみたいです。それと読み込み場所も色々あり、アプリケーションに組み込まれたファイル、assetsフォルダに置いてあるファイル、rowフォルダに置くファイル、SDカードから読み込むファイルなどなど。

読み込み方法はどのやりかたも共通なものがあって、

ファイルを読み込むためのメソッドを呼び出す>try{}catch{}の中で読み込む>読み込むためのメソッドを閉じる(終了させる)

となっています。

 
実行結果
無事に表示できました。

今回はわたくしの一番苦手なプログラムになりました。このファイル読み込み系は様々な方法があって、手持ちの本、様々なサイトさんなど見比べてみてもすべて違うのです。

今回は手持ちの本&サイトさんを参考にしました。そのサイトさんは、色々なソースコードでお世話になっているのですが、一番シンプルでわかりやすいのがすごくすばらしいです。

参考サイトさん: 愚鈍人(ファイルアクセスの頁)

 

assetsフォルダに入れたtextファイルを読み込み表示
その1のコードを使用して連続したデータを取り込み分解
今までの読み込みこんだデータを図形に変換してみた!
アプリケーション専用ファイルでの書き込み読み込み
アプリケーション終了→次回起動時までデータの保持

 

 

 

 

 

Androidプログラミング日記 (仮) | サイトマップ | 個人情報保護方針 | 応援メールテヘペロ | ©2012 Japan  相互リンク大募集中です