Ввод и вывод файла Java - PullRequest
       18

Ввод и вывод файла Java

2 голосов
/ 21 февраля 2010

У меня есть метод ниже, который предназначен для добавления информации в файл, но я получаю ошибку ниже. В этом методе я использую части robocode API, которые наследуются от java.io.InputStream

Все разрешения для файлов и папок выглядят нормально, и файл существует

static public void logInfo(String info) 
{        

    RobocodeFileWriter in;
    try {
        in = new RobocodeFileWriter("log.txt");
        in.append(info);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }       


}

SYSTEM: во время инициализации itc.solomon произошла ошибка СИСТЕМА: java.security.AccessControlException: предотвращение доступа itc.solomon: (чтение java.io.FilePermission log.txt): вы можете читать файлы только в своем собственном каталоге корневых пакетов java.security.AccessControlException: Предотвращение itc.solomon от доступа: (чтение java.io.FilePermission log.txt): Вы можете только читать файлы в своем собственном корневом каталоге пакета. в robocode.security.RobocodeSecurityManager.handleSecurityProblem (неизвестный источник) в robocode.security.RobocodeSecurityManager.checkPermission (Неизвестный источник) at java.lang.SecurityManager.checkRead (SecurityManager.java:888) в java.io.File.exists (File.java:748) в robocode.RobocodeFileOutputStream. (Неизвестный источник) в robocode.RobocodeFileOutputStream. (Неизвестный источник) в robocode.RobocodeFileWriter. (Неизвестный источник) at itc.CFile.logInfo (CFile.java:16) на ит.соломоне. (solomon.java:43) at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance (Constructor.java:532) в java.lang.Class.newInstance0 (Class.java:372) в java.lang.Class.newInstance (Class.java:325) в robocode.peer.proxies.HostingRobotProxy.loadRobotRound (неизвестный источник) на robocode.peer.proxies.HostingRobotProxy.run (неизвестный источник) at java.lang.Thread.run (Thread.java:636)

Ответы [ 2 ]

2 голосов
/ 09 марта 2010

Смотрите этот образец: http://code.google.com/p/robocode/source/browse/robocode/trunk/robocode.samples/src/main/java/sample/SittingDuck.java

Я думаю, getDataFile("log.txt") даст вам правильное местоположение.

1 голос
/ 21 февраля 2010

Я немного искал об этой проблеме. Кажется, что есть ошибка в пакете robocode, неловко решаемая :

while (!dataIsLoaded) {
   try {
       tryToReadData;
       dataIsLoaded = true;
   } catch (AnyException e) {}
}

Это довольно ужасный способ решения проблем по многим причинам (игнорирование исключений, ожидание занятости и т. Д.) Более разумным способом было бы понижение пакета robocode до предыдущей, более стабильной версии.

Смотрите результаты поиска здесь .

...