Textdatei in TextView anzeigen lassen - komm nicht weiter...

  • Antworten:10
  • OffenNicht stickyNicht beantwortet

01.05.2011 16:21:38 via Website

Hi,

ich versuche gerade eine Textdatei von der SD Karte in einer TextView anzuzeigen:
1String source = "/sdcard/test.txt";
2
3int numberOfBytes;
4byte[] buffer = new byte[32768];
5FileInputStream in = new FileInputStream(source);
6while ( (numberOfBytes = in.read(buffer)) >0 ) {
7Resources res = getResources();
8String textfeld = String.format(res.getString(R.string.textfeld));
9 textfeld.setText(buffer, 0, numberOfBytes);
10 }
11 in.close();

Jetzt meckert Eclipse bei dem setText();
Hab auch schon einige Codeschnipsel im Netz angeguckt, bin aber nicht wirklich weitergekommen.
Und noch so am Rande, könnte man damit dann auch .conf Dateien von in der /data/ Partition auslesen?

Danke schonmal
Ludwig

01.05.2011 18:44:28 via Website

Oh ja, heißt es auch. :D Also so stehts jetzt drin:
1TextView testfeld = (TextView) findViewById(R.id.testfeld);
2
3 String source = "/sdcard/test.txt";
4
5 int numberOfBytes;
6 byte[] buffer = new byte[32768];
7 FileInputStream in = new FileInputStream(source);
8 while ( (numberOfBytes = in.read(buffer)) >0 ) {
9 Resources res = getResources();
10 String ergebnis = String.format(res.getString(R.string.testfeld));
11 testfeld.setText(buffer, 0, numberOfBytes);
12 }
13 in.close();

01.05.2011 19:01:34 via Website

Klar das es nicht funktioniert Luhu ... aber Eclipse sagt Dir doch genau was dem Compiler an der Stelle nicht passt.

The method setText(char[], int, int) in the type TextView is not applicable for the arguments (byte[], int, int)

Soll heißen : buffer ist kein array of char sondern ein Array of byte

— geändert am 01.05.2011 19:02:33

lg Voss - Ach ja und noch was, die AndroidPIT-Regeln ლ(╹◡╹ლ) Android Security

04.05.2011 21:01:55 via Website

Ansgar M
Danke, hab das jetzt mal ausprobiert, aber das funktioniert leider nicht so...
1// try opening the myfilename.txt
2 try {
3 // open the file for reading
4 InputStream instream = openFileInput("myfilename.txt");
5
6 // if file the available for reading
7 if (instream) {
8 // prepare the file for reading
9 InputStreamReader inputreader = new InputStreamReader(instream);
10 BufferedReader buffreader = new BufferedReader(inputreader);
11
12 String line;
13
14 // read every line of the file into the line-variable, on line at the time
15 while (( line = buffreader.readLine())) {
16 // do something with the settings from the file
17 }
18
19 }
20
21 // close the file again
22 instream.close();
23 } catch (java.io.FileNotFoundException e) {
24 // do something if the myfilename.txt does not exits
25 }

Ich bekomme in Zeile 7 und 15 bei den Abfragen Fehlermeldungen "cannot convert String to boolean". Ist ja eigentlich auch logisch :D
Weiß aber nicht wie man das dann sonst hinschreiben sollte...