我遇到过很多网站示例,几乎所有内容都是这样的:
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)
正在检查unsigned char
上的-1,所以它永远不会消极。 Stewpid错误。我只是将它改为int并且它有效。很抱歉打扰。如果没有删除,我希望有人会觉得这很有用
答案 0 :(得分: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是字符串缓冲区,其中包含字符串。