我试图使用txt文件,但我得到了这个错误" FileNotFoundException" 但它是可读的,它存在但在线FileInputStream我得到了这个错误 这是怎么回事?
System.out.println(Files.isReadable(Paths.get("I:/Code/Coding/src/Files/" + path + ".txt")));
System.out.println(Files.exists(Paths.get("I:/Code/Coding/src/Files/" + path + ".txt")));
FileInputStream f1=new FileInputStream("I:/Code/Coding/src/Files/" + path + ".txt");
reader = new ObjectInputStream(f1);
java.io.FileNotFoundException: I:\Code\Coding\src\Files\Artists.txt (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sample.Datebase.Server.readFiles(Server.java:70)
at sample.Datebase.Server.run(Server.java:99)
at sample.Datebase.Server.main(Server.java:54)
Exception in thread "main" java.lang.NullPointerException
at sample.Datebase.Server.readFiles(Server.java:94)
at sample.Datebase.Server.run(Server.java:99)
at sample.Datebase.Server.main(Server.java:54)
答案 0 :(得分:2)
我遇到了同样的问题,我使用File
类解决了这个问题。请试试这段代码。也许你的问题会解决:
File file = new File("I:/Code/codeing/src/Files/" + path + ".txt");
reader = new ObjectInputStream(new FileInputStream(file));
Object o = reader.readObject();
答案 1 :(得分:0)
此代码段的前3行看起来没问题,理想情况下,如果Files.exists和Files.isReadable为true,则不应抛出FileNotFoundException。
但是你不能使用ObjectInputStream来读取普通的文本文件,因为它会查找某些文件头来解释序列化的java对象。
请复制粘贴异常跟踪吗?
答案 2 :(得分:0)
FileNotFoundException
- 如果文件存在但无法打开以进行阅读,则还会引发FileNotFoundException
异常
阅读详情FileInputStream
首先,检查该文件的权限。是否可以阅读。
public static boolean isReadable(Path path)
:如果文件返回true 存在且可读,但不保证;请注意这个结果 方法立即过时,不能保证一个 随后尝试打开文件进行阅读将成功(甚至 它将访问相同的文件)。使用时应小心 这种方法在安全敏感的应用程序中。