Segalanya sederhana tetapi tidak berfungsi sebagaimana mestinya.
Saya memiliki file teks yang ditambahkan sebagai sumber daya mentah. File teks berisi teks seperti:
b) JIKA HUKUM YANG BERLAKU MEMERLUKAN JAMINAN SEHUBUNGAN DENGAN PERANGKAT LUNAK, SEMUA GARANSI TERSEBUT DIBATASI DALAM JANGKA WAKTU HINGGA SEMBILAN (90) HARI SEJAK TANGGAL PENGIRIMAN.
(c) TIDAK ADA INFORMASI LISAN ATAU TERTULIS ATAU SARAN YANG DIBERIKAN OLEH VIRTUAL ORIENTEERING, DEALER, DISTRIBUTOR, AGEN ATAU KARYAWANNYA YANG AKAN MENCIPTAKAN JAMINAN ATAU DENGAN CARA APA PUN MENINGKATKAN CAKUPAN JAMINAN YANG DISEDIAKAN DI SINI.
(d) (Khusus AS) BEBERAPA NEGARA BAGIAN TIDAK MENGIZINKAN PENGECUALIAN JAMINAN TERSIRAT, JADI PENGECUALIAN DI ATAS MUNGKIN TIDAK BERLAKU BAGI ANDA. JAMINAN INI MEMBERI ANDA HAK HUKUM TERTENTU DAN ANDA JUGA MUNGKIN MEMILIKI HAK HUKUM LAINNYA YANG BERBEDA DARI NEGARA KE NEGARA.
Di layar saya, saya memiliki tata letak seperti ini:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1.0"
android:layout_below="@+id/logoLayout"
android:background="@drawable/list_background">
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/txtRawResource"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dip"/>
</ScrollView>
</LinearLayout>
Kode untuk membaca sumber daya mentah adalah:
TextView txtRawResource= (TextView)findViewById(R.id.txtRawResource);
txtDisclaimer.setText(Utils.readRawTextFile(ctx, R.raw.rawtextsample);
public static String readRawTextFile(Context ctx, int resId)
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1)
{
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
return null;
}
return byteArrayOutputStream.toString();
}
Teks ditampilkan tetapi setelah setiap baris saya mendapatkan karakter aneh [] Bagaimana cara menghapus karakter itu? Saya pikir ini Jalur Baru.
SOLUSI KERJA
public static String readRawTextFile(Context ctx, int resId)
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();
try {
while (( line = buffreader.readLine()) != null) {
text.append(line);
text.append('\n');
}
} catch (IOException e) {
return null;
}
return text.toString();
}
Jawaban:
Bagaimana jika Anda menggunakan BufferedReader berbasis karakter dan bukan InputStream berbasis byte?
Jangan lupa bahwa
readLine()
melewatkan baris baru!sumber
Anda dapat menggunakan ini:
sumber
Jika Anda menggunakan IOUtils dari apache "commons-io" lebih mudah:
Dependensi: http://mvnrepository.com/artifact/commons-io/commons-io
Maven:
Gradle:
sumber
Dengan Kotlin, Anda dapat melakukannya hanya dalam satu baris kode:
Atau bahkan mendeklarasikan fungsi ekstensi:
Dan kemudian langsung gunakan:
sumber
Lebih baik lakukan dengan cara ini:
Dari sebuah Aktivitas , tambahkan
atau dari kasus uji , tambahkan
Dan perhatikan penanganan kesalahan Anda - jangan menangkap dan mengabaikan pengecualian ketika sumber daya Anda pasti ada atau ada sesuatu yang (sangat?) Salah.
sumber
openRawResource()
?Ini adalah metode lain yang pasti akan berhasil, tetapi saya tidak bisa membaca beberapa file teks untuk dilihat dalam beberapa tampilan teks dalam satu aktivitas, ada yang bisa membantu?
sumber
@borislemke Anda dapat melakukan ini dengan cara yang sama seperti
sumber
Ini dia campuran solusi weekens dan Vovodroid.
Ini lebih tepat daripada solusi Vovodroid dan lebih lengkap daripada solusi mingguan.
sumber
Berikut adalah metode sederhana untuk membaca file teks dari folder mentah :
sumber
Berikut adalah implementasi di Kotlin
sumber
1. Pertama buat folder Direktori dan beri nama raw di dalam folder res 2. buat file .txt di dalam folder direktori raw yang Anda buat sebelumnya dan beri nama apa pun misalnya .articles.txt .... 3. copy dan paste teks yang Anda inginkan di dalam file .txt yang Anda buat "Articles.txt" 4. jangan lupa untuk menyertakan textview di main.xml MainActivity.java Anda
Semoga berhasil!
sumber
sumber