我正在从 java 应用程序访问文件,但出现以下异常
c:\Program Files\sample\sample\cample.xml (Acc?s refus?) at java.io.FileOutputStream.(Unknown Source) at java.io.FileOutputStream. at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
有谁知道为什么会发生这个异常......,解决方案...... 是否与文件权限有关,意思是文件没有读权限。
最佳答案
以我有限的法语知识,我想“Acc?s refus?”在您的系统上,是“拒绝访问?”或类似的东西。这意味着:“访问被拒绝”。换句话说,你的Java程序不允许去你提到的位置。
考虑到该位置位于c:\program files
下,Windows Vista 及更高版本确实禁止该位置。最好选择 %APPDATA%
下的位置或您具有写入权限的其他位置。
请注意,出于安全原因,Windows 会尝试阻止写入敏感位置。即使您通过将帐户更改为管理员获得了权限,您仍然不应该将数据、设置、文件等放在程序文件下。相反,它应该位于当前用户或默认用户的应用程序数据目录下。在Java中你可以get this path as follows :
// get application path
System.getenv("APPDATA");
关于java - (Accès refusé) 访问被拒绝异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545093/