は、私は、バッファ読書のための活動に何をすべきかです/拡張ニーズ
に一致するように変更
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt")));
// do reading, usually loop until end of file reading
String mLine;
while ((mLine = reader.readLine()) != null) {
//process line
...
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
EDIT:あなたの質問は、活動の外でそれを行う方法である場合私の答えは、おそらく無用です。あなたの質問が単純に資産からファイルを読み込む方法であれば、答えは上記のとおりです。
UPDATE:
単に以下のようにInputStreamReader呼び出しでタイプを追加するタイプを指定してファイルを開くには。
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt"), "UTF-8"));
// do reading, usually loop until end of file reading
String mLine;
while ((mLine = reader.readLine()) != null) {
//process line
...
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
@Stanコメントで言うようにEDIT
は、私が与えているコードは、行を合計されていません。パスごとにmLine
が置き換えられます。だから私は//process line
と書いた。ファイルに何らかの種類のデータ(連絡先リスト)が含まれていて、各行を別々に処理する必要があるとします。
何らかの処理を行わずにファイルをロードしたい場合は、StringBuilder()
を使用してパスごとにmLine
を合計し、各パスを追加する必要があります。 @Vincentのコメントによると
ANOTHER EDIT私はfinally
ブロックを追加しました。
Java 7以上では、AutoCloseable
と最近のJavaの機能を使用するのにtry-with-resources
を使用できます。 getAssets()
はcontext
でclass
であることを指摘し@LunarWatcherコメントで
CONTEXT
。だから、activity
の外に呼び出すと、それを参照してコンテキストインスタンスをアクティビティに渡す必要があります。
ContextInstance.getAssets();
これは@Maneeshの答えで説明されています。だから、もしあなたが彼の答えをアップアップすることが役に立つなら、それは彼がそれを指摘した人だからです。
このコードは、毎回 – Stan
@Stanを渡すたびにmLineの内容を置き換えることに失敗します。それからコメントに書き込んで、作者に更新を希望するかどうかを決定させてください。編集は、意味を変えずに明瞭さを向上させるためのものです。コードの改訂は常にコメントとして投稿する必要があります。 – KyleMit
ええ、私は、高すぎるそれを得た! EDITの機能について言及していただきありがとうございます。私はすぐにこのコメントを削除するつもりはないなどもあなたのコメントを上に投票した – Stan