我试图在answer之后阅读txt文件,但我无法让它工作。它显示了这个例外:
java.io.IOException: Root is not accessible
- com/sun/io/j2me/file/Protocol..unknown.(), bci=21
- com/sun/io/j2me/file/Protocol..unknown.(), bci=424
- com/sun/io/j2me/file/Protocol..unknown.(), bci=5
- javax/microedition/io/Connector.open(), bci=73
- javax/microedition/io/Connector.open(), bci=6
- javax/microedition/io/Connector.open(), bci=3
这是代码:
try
{
fileConnection = (FileConnection)Connector.open("file://home//pi//test.txt", Connector.READ_WRITE);
if(fileConnection.exists())
{
int size = (int)fileConnection.fileSize();
is= fileConnection.openInputStream();
byte bytes[] = new byte[size];
is.read(bytes, 0, size);
String str = new String(bytes, 0, size);
System.out.println(size);
}
}
我认为它与权限有关,但我已经设置了这些:
javax.microedition.io.Connector.file.read
javax.microedition.io.Connector.file.write
java.io.FilePermission "file://*" "read,write"
任何人都可以帮助我吗?
提前致谢,
答案 0 :(得分:0)
部分/大多数支持JavaME的手机不允许访问SD卡或内部存储设备上的所有文件夹。
请尝试使用String file = "file:///c:/other/test.txt";
或String file = "file:///e:/other/test.txt";
。
或者您可以尝试String file = System.getProperty("fileconn.dir.memorycard") + "/test.txt";
或String file = System.getProperty("fileconn.dir.memorycard") + "/other/test.txt";
然而,最好的方法是使用只检查可用文件夹的代码。一些有用的例子: http://javatechig.com/java/j2me/fileconnection-apis-jsr-75