Berikut adalah apa yang saya lakukan dalam aktivitas untuk memperpanjang / memodifikasi bacaan buffered yang sesuai dengan kebutuhan Anda
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: Jawaban saya mungkin tidak berguna jika pertanyaan Anda adalah bagaimana melakukannya di luar kegiatan. Jika pertanyaan Anda hanyalah cara membaca file dari aset, maka jawabannya ada di atas.
MEMPERBARUI :
Untuk membuka file yang menentukan tipe cukup tambahkan tipe dalam panggilan InputStreamReader sebagai berikut.
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
}
}
}
EDIT
Seperti @Stan katakan dalam komentar, kode yang saya berikan tidak merangkum garis. mLine
diganti setiap pass. Itu sebabnya saya menulis//process line
. Saya berasumsi file tersebut berisi beberapa jenis data (yaitu daftar kontak) dan setiap baris harus diproses secara terpisah.
Jika Anda hanya ingin memuat file tanpa proses apa pun, Anda harus meringkas mLine
pada setiap pass menggunakan StringBuilder()
dan menambahkan setiap pass.
EDIT LAIN
Menurut komentar @Vincent saya menambahkan finally
blok.
Perhatikan juga bahwa di Java 7 dan di atasnya Anda dapat menggunakan try-with-resources
untuk menggunakan AutoCloseable
dan Closeable
fitur-fitur Java terbaru.
KONTEKS
Dalam komentar @LunarWatcher menunjukkan bahwa itu getAssets()
adalah class
in context
. Jadi, jika Anda menyebutnya di luar activity
Anda perlu merujuknya dan meneruskan contoh konteks ke aktivitas.
ContextInstance.getAssets();
Ini dijelaskan dalam jawaban @aneane. Jadi jika ini bermanfaat bagi Anda, jawablah jawabannya karena dialah yang menunjukkan itu.