【问题标题】:Java file input and outputJava文件输入输出
【发布时间】:2011-01-19 06:44:29
【问题描述】:

我有以下方法,该方法旨在将信息附加到文件中,但出现以下错误。在该方法中,我使用了继承自 java.io.InputStream 的部分 robocode API

文件和文件夹的所有权限似乎都很好,并且文件确实存在

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 初始化期间发生错误 SYSTEM: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(未知来源) 在 java.lang.SecurityManager.checkRead(SecurityManager.java:888) 在 java.io.File.exists(File.java:748) 在 robocode.RobocodeFileOutputStream.(未知来源) 在 robocode.RobocodeFileOutputStream.(未知来源) 在 robocode.RobocodeFileWriter.(​​未知来源) 在 itc.CFile.logInfo(CFile.java:16) 在 itc.solomon.(solomon.java:43) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 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(未知来源) 在 java.lang.Thread.run(Thread.java:636)

【问题讨论】:

    标签: java io robocode


    【解决方案1】:

    查看此示例: http://code.google.com/p/robocode/source/browse/robocode/trunk/robocode.samples/src/main/java/sample/SittingDuck.java

    我认为getDataFile("log.txt") 会给你正确的位置。

    【讨论】:

      【解决方案2】:

      我已经对这个问题进行了一些搜索。好像there's a bug in the robocode package, awkwardly solved by:

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

      这是一种非常糟糕的解决问题的方法,原因有很多(忽略异常、忙于等待等)。更明智的方法是将 robocode 包降级到以前的更稳定版本。

      See search results here.

      【讨论】:

      猜你喜欢
      • 2012-05-16
      • 2013-12-15
      • 1970-01-01
      • 2018-05-25
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多