Java读取txt文件-访问被拒绝?

6

我在电脑的我的文档中创建了一个txt文件。我试图通过FileReaderBufferedReader读取txt文件,但是当我尝试运行程序时,出现了以下错误信息:

java.io.FileNotFoundException: <filelocation> (Access is denied)

有人知道是什么原因导致这个问题吗?我该如何解决?我已经尝试将文档保存到其他位置,但始终收到此消息。我确定文件路径已正确输入。


2
我认为异常信息“FileNotFoundException”已经说明了一切。您能展示一下代码吗? - Yaroslav Boichuk
1
这可能会有所帮助:https://dev59.com/qW855IYBdhLWcg3wik-D - G_H
你能添加一下你访问文件的相关代码吗?你的异常信息也缺少一些信息(例如文件名)... 你能同时添加完整的堆栈跟踪吗? - CoolBeans
感谢您的评论。就整个错误消息而言,它如下所示:读取时出错:java.io.FileNotFoundException: C:\Users\Kristian\Documents(拒绝访问)。我的大部分代码不是用英语编写的,如果您希望我将代码完整地放在网上,我需要一些时间。我可以尝试G_H提供的链接中建议的一些方法。 - Kristian
你在读取完后是否正确关闭了流?"C:\Users\Kristian\Documents (Access is denied)" 看起来你的路径中有空格问题。请发布创建文件名的代码行。 - Stephan
4个回答

12

java.io.FileNotFoundException: C:\Users\Kristian\Documents (访问被拒绝)

您尝试读取的是一个目录,而不是 .txt 文件。


这也是我的问题。他们为什么不能直接说“指定了文件夹而不是文件”? - Collin

5

有一个猜测是您可能正在运行多个测试程序实例,因此该文件被先前仍在运行的程序实例锁定。您可以在Eclipse中检查打开的控制台,或者重启Eclipse。


非常感谢,这确实有所帮助!现在唯一的问题是,我的输出结果中出现了一些令人困惑的东西。我的输出结果显示:“Student 20: 30.4 Student 19: 87.6 Student 21: 91.34”,然而,这些符号“”不应该出现。这可能是什么原因引起的? - Kristian
可能是您的文件包含了一些Eclipse控制台不支持的字符。您可以在运行对话框中配置控制台的编码方式。如果问题仍然存在,您可以更新问题并附上文件内容和程序代码。 - Ashwinee K Jha
嗨。再次感谢。我尝试在另一个Eclipse程序中打开文件,我也用它来阅读文本文件,在这里一切都运行顺利。因此,既然我现在能够在这里正确地运行文件,我想我会就这样离开了。不过,我真的很感激你的帮助! - Kristian

0

可能有两种问题。

  1. 您的路径包含文件夹或文件名称中的空格。您可以通过在该文件夹路径的命令提示符中使用非8点3文件名来解决此问题,例如使用命令dir /p /x
  2. 您可以将表单保存在项目文件夹中,并使用相对路径./txt.file。如果您的文件位于路径下,例如<project folder>/input/txt.file,则您的相对路径将为./input/txt.file。如果这不起作用,请尝试搜索文件读取代码,您会找到错误所在。

非常感谢。感谢您的提示。在上面的帮助下,我现在能够在我的一个Eclipse程序中正确运行它了。 - Kristian
@EJP 请查看我回答的理由File file = new File("./ src/CollectionUtils.java"); System.out.println(file.getAbsolutePath() + file.isFile()); File file1 = new File("./src/CollectionUtils.java"); System.out.println(file1.getAbsolutePath() + file1.isFile());样例输出 /Users/nbabu/workspace/FunProject/./ src/CollectionUtils.javafalse /Users/nbabu/workspace/FunProject/./src/CollectionUtils.javatrue - Naveen Babu
@NaveenBabu 什么答案?你的回答中没有一个点能够确定实际问题,而你评论中的代码混乱也没有解释清楚。 - user207421

-1

可能是您需要更改文件夹的安全设置。进入目录,右键单击属性,选择安全,高级选项并更改权限,以便所有子依赖项继承安全更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接