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 - строковый буфер, в котором есть строка.