前回は「assets」の配下に「test.html」を作成して、
そのファイルをhtmlとして、読み込みましたが、
今回は中のファイルに何が書かれているかを見たいと思います。
注意点としては、assets配下のファイルは読み込みはできるけど、
書き込みはできません。
もう一度言います。
assets配下のファイルは読み込み可、書き込み不可です。
自分は書き込みをしたくて、一週間くらい調べましたができませんでした。
できる方法もあるかもしれませんが。。。
リファレンス的には読み込み専用となっています。
http://developer.android.com/reference/android/content/res/AssetManager.html
■サンプルソース
package com.example.filemgr;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.os.Bundle;
import android.app.Activity;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//インプットストリームの作成
InputStream oInStream;
String lineBuffer;
String str = "";
try {
//assetsに存在するtest.htmlを開くという命令
oInStream = getAssets().open("test.html");
//リーダーでインプットストリームの内容を読む
BufferedReader reader= new BufferedReader(new InputStreamReader(oInStream,"UTF-8"));
while( (lineBuffer = reader.readLine()) != null ){
str = str + lineBuffer;
}
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
//テキストビューの作成
TextView oTextView = new TextView(getApplicationContext());
oTextView.setText(str);
//レイアウトの生成とテキストの貼り付け
LinearLayout oLayout = new LinearLayout(getApplicationContext());
oLayout.addView(oTextView);
//レイアウトを表示
setContentView(oLayout);
}
}
■実行結果
みづらいけど、
前回作成したファイルの中身が見れました。。。
//リーダーでインプットストリームの内容を読む
BufferedReader reader= new BufferedReader(new InputStreamReader(oInStream,"UTF-8"));
//リーダーでインプットストリームの内容を読む
BufferedReader reader= new BufferedReader(new InputStreamReader(oInStream,"UTF-8"));
while( (lineBuffer = reader.readLine()) != null ){
str = str + lineBuffer;
}
str = str + lineBuffer;
}
↑
ここらへんの処理はAndroidではあんまり使いませんが、
JAVAではよく使う処理です。
oInStream = getAssets().open("test.html");
↑
これがミソです。
getAssets()で、アセットフォルダを取得しています。(イメージとして)
なので、ファイル名の指定だけで開けます。
これはAndroid特有の処理です。
0 件のコメント:
コメントを投稿