Les choses sont simples mais ne fonctionnent pas comme prévu.
J'ai un fichier texte ajouté en tant que ressource brute. Le fichier texte contient du texte comme:
b) SI LA LOI APPLICABLE EXIGE DES GARANTIES EN CE QUI CONCERNE LE LOGICIEL, TOUTES CES GARANTIES SONT LIMITÉES EN DURÉE À NEUF (90) JOURS À PARTIR DE LA DATE DE LIVRAISON.
(c) AUCUNE INFORMATION OU CONSEIL ORAL OU ÉCRIT FOURNI PAR VIRTUAL ORIENTEERING, SES CONCESSIONNAIRES, DISTRIBUTEURS, AGENTS OU EMPLOYÉS NE CRÉERONT DE GARANTIE OU D'AUGMENTER DE TOUTE MANIÈRE LA PORTÉE DE TOUTE GARANTIE FOURNIE AUX PRÉSENTES.
(d) (États-Unis uniquement) CERTAINS ÉTATS NE PERMETTENT PAS L'EXCLUSION DE GARANTIES IMPLICITES, PAR CONSÉQUENT, L'EXCLUSION CI-DESSUS PEUT NE PAS S'APPLIQUER À VOUS. CETTE GARANTIE VOUS DONNE DES DROITS LÉGAUX SPÉCIFIQUES ET VOUS POUVEZ ÉGALEMENT AVOIR D'AUTRES DROITS JURIDIQUES QUI VARIENT D'UN ÉTAT À L'AUTRE.
Sur mon écran, j'ai une disposition comme celle-ci:
<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>
Le code pour lire la ressource brute est:
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();
}
Le texte est affiché mais après chaque ligne, j'obtiens un caractère étrange [] Comment puis-je supprimer ce caractère? Je pense que c'est New Line.
SOLUTION DE TRAVAIL
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();
}