1

我正在尝试按照这个答案阅读一个 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"

谁能帮我?

提前致谢,

4

1 回答 1

0

一些/大多数支持 JavaME 的手机不允许访问 SD 卡或内部存储上的所有文件夹。

尝试使用String file = "file:///c:/other/test.txt";orString 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

于 2016-05-22T06:08:43.357 回答