J2ME чтение файла побайтно

Я встречал много примеров сайтов, и почти все они такие:
http://www.java2s.com/Code/Java/J2ME/ReadDisplayFile.htm
http://www.roseindia.net/j2me/read-file.shtml
Они показывают только, как читать файл из файла ресурсов, а не в файловой системе.
Это мой текущий код:

InputStream is;
String path = "file:///root1/photos/a.txt"
try {
     fc = (FileConnection)Connector.open(path,Connector.READ);
     is = fc.openInputStream();
     int a = is.available();
     char buf = 0;
     String buff = new String();
     while (buf!=-1){
           buf=(char)is.read();
           buff+=buf;                      
     }          
 } catch (IOException ex) {} 

но это не работает, и бесконечный цикл создан.

is.available(); (int a) возвращает 0 (почему?) иfile:///root1/photos/a.txt существует и содержит: Hi!Hello!

Как я могу заставить это работать?

РЕДАКТИРОВАТЬ: я понял, (buf!=-1) проверяет -1 на unsigned char так что это никогда не отрицательно. Ошибка Stewpid. Я просто изменил его на int, и это сработало. Извините за беспокойство. Я надеюсь, что кто-то найдет это полезным, если он не будет удален

1 ответ

Решение

Лучше попробуй это

InputStream is;
String path = "file:///root1/photos/a.txt"
try {
     fc = (FileConnection)Connector.open(path,Connector.READ);
     is = fc.openInputStream();
     int a = is.available();
     char buf = 0;
     StringBuffer buff = new StringBuffer();
     int i=0;     
     String temp1=null;byte bt[]=null;   
     while ((i=is.read())!=-1){
           bt=new byte[1];
           bt[0]=(byte)i;
           temp1=new String(bt);
           buf.append(temp1);
           temp1=null;
           bt=null;

     }          
 } catch (IOException ex) {} 

buf - строковый буфер, в котором есть строка.

Другие вопросы по тегам