当我尝试使用Eclipse访问Java中的File对象时,只要访问该文件,系统就会发送FileNotFoundException。我手动创建了文件并将其放在Eclipse的文件浏览器中。该文件确实有内容,所以问题不在于它是空的。我正在使用
初始化文件File file = new File(this.getClass().getResource("save.txt").toString());
并使用
访问它PrintWriter p = new PrintWriter(file);
发送错误。除了创建此类的初始化路径之外,堆栈跟踪不会返回任何内容。
是个例外java.io.FileNotFoundException: file:\C:\Users\Nathaniel\Downloads\ERPGE-Global%20Equestria%20Workspace\Swarm\bin\main\save.txt (The filename, directory name, or volume label syntax is incorrect)
可能导致此错误的原因是什么,以及如何修复?
答案 0 :(得分:1)
您需要确保资源包含在项目的构建路径中。
您可以通过以下两种方式之一完成此操作:
我个人更喜欢选项#1。
编辑:您可能还发现拥有res文件夹的子目录很有用。如果您有一个文件,例如 res / images / button.png ,并且您已将res文件夹添加到构建路径,则需要使用字符串“images / button访问该文件.PNG“
修改2:修正了一些误导性信息。
答案 1 :(得分:1)
该文件需要放在父项目文件夹本身而不是源文件夹中。如果创建的文件没有指定的文件路径,则会存储该文件。
答案 2 :(得分:0)
提供文件的实际路径并获取文件Object。然后你可以使用它。
File file = new File("C:\Users\Nathaniel\Downloads\save.txt");
PrintWriter p = new PrintWriter(file);
编辑:
外部化文件名:
在外部文件夹/包中创建属性文件filedetails.properties。
fileName=C:\Users\Nathaniel\Downloads\save.txt
访问资源包。
ResourceBundle b=ResourceBundle.getBundle("external.filedetails") ;
String fileName=b.getString("fileName");
File file=new File(fileName);