2

我遇到过很多站点示例,几乎都是这样的:
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)在 a 上检查 -1unsigned char所以它永远不会是负数。愚蠢的错误。我只是将其更改为 int 并且它有效。抱歉打扰了。如果不被删除,我希望有人会发现这很有用

4

1 回答 1

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 是具有字符串的字符串缓冲区。

于 2012-05-01T08:20:53.870 回答