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