Java文件输入和输出
我有以下方法,旨在将信息附加到文件中,但出现以下错误。在该方法中,我使用了 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();
}
}
系统:itc.solomon 初始化期间发生错误 SYSTEM: java.security.AccessControlException: 阻止 itc.solomon 访问: (java.io.FilePermission log.txt read): 您只能读取您自己的根包目录中的文件。 java.security.AccessControlException:阻止 itc.solomon 访问:(java.io.FilePermission log.txt read):您只能读取自己的根包目录中的文件。 在 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(本机方法) 在 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)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请参阅此示例:
http://code.google.com/p/robocode/source/browse/robocode/trunk/robocode.samples/src/main/java/sample/SittingDuck.java
我认为
getDataFile("log .txt")
将为您提供正确的位置。See this sample:
http://code.google.com/p/robocode/source/browse/robocode/trunk/robocode.samples/src/main/java/sample/SittingDuck.java
I think
getDataFile("log.txt")
will give you proper location.我已经搜索了一些关于这个问题的信息。似乎
robocode
包中存在一个错误,笨拙地解决了:由于多种原因(忽略异常、忙等待等),这是一种非常糟糕的解决问题的方法。更明智的方法是将 robocode 包降级到以前的、更稳定的版本。
在此处查看搜索结果。
I've searched a bit about this problem. It seems that there's a bug in the
robocode
package, awkwardly solved by:It's a quite awful way to solve the problems, for many reasons (ignoring exceptions, busy-waiting, etc.) A more sane way would be downgrading the robocode package to a previous, more stable version.
See search results here.