Le cose sono semplici ma non funzionano come dovrebbero.
Ho un file di testo aggiunto come risorsa non elaborata. Il file di testo contiene testo come:
b) SE LA LEGGE APPLICABILE RICHIEDE QUALSIASI GARANZIA RIGUARDO AL SOFTWARE, TUTTE TALI GARANZIE SONO LIMITATE A DURATA A NOVANTA (90) GIORNI DALLA DATA DI CONSEGNA.
(c) NESSUNA INFORMAZIONE O CONSIGLIO ORALE O SCRITTO FORNITO DA VIRTUAL ORIENTEERING, DAI SUOI RIVENDITORI, DISTRIBUTORI, AGENTI O DIPENDENTI POTRÀ CREARE UNA GARANZIA O IN QUALSIASI MODO AUMENTARE LA PORTATA DI QUALSIASI GARANZIA QUI FORNITA.
(d) (solo USA) ALCUNI STATI NON CONSENTONO L'ESCLUSIONE DI GARANZIE IMPLICITE, PERTANTO L'ESCLUSIONE DI CUI SOPRA POTREBBE NON ESSERE APPLICABILE. QUESTA GARANZIA TI CONFERISCE DIRITTI LEGALI SPECIFICI E PUOI AVERE INOLTRE ALTRI DIRITTI LEGALI CHE VARIANO DA STATO A STATO.
Sul mio schermo ho un layout come questo:
<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>
Il codice per leggere la risorsa raw è:
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();
}
Il testo viene mostrato ma dopo ogni riga ottengo uno strano carattere [] Come posso rimuovere quel carattere? Penso che sia New Line.
SOLUZIONE DI LAVORO
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();
}