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
15
Gelöschter Account

01.05.2011 18:11:08 via Website

ja, und wo ist deine textview?
15
Gelöschter Account

01.05.2011 18:40:19 via Website

Dann sollte Zeile 9 eigentlich testfeld.setText heissen?

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

01.05.2011 19:11:44 via Website

Die Frage ist warum Du das unbedingt als Bytes einlesen willst und nicht als String, wie man sich das doch in einer Text Datei erwarten würde.

lg Voss

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...