J2ME Исключение при открытии файла: Root не доступен

Я пытаюсь прочитать текстовый файл после этого ответа, но я не могу заставить его работать. Это показывает это исключение:

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"

Может кто-нибудь мне помочь?

Заранее спасибо,

1 ответ

Некоторые / большинство телефонов с поддержкой 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

Другие вопросы по тегам