2016-03-13 89 views
-1

我正试图编写一个程序来检索预先创建的.txt文件。在Mac上使用Netbeans,Netbeans无法找到.txt文件

.txt文件被称为 “Program3.txt” 并且被放置在 /users/(me)/NetBeansProjects/Assn3Prog3/src/assn3prog3/Program3.txt

当我提示用户:返回

filename = keyboard.nextLine();   
file1 = new File(filename); 
Scanner inputFile = new Scanner(file1); 

以下错误:

Program3.txt例外,我(无法访问此文件或目录) java.io.FileInputStream.open0(Native Method) java.io.FileInputStream.open(FileInputStream.java:195 )在 java.io.FileInputStream中。(FileInputStream.java:138)在 java.util.Scanner中。(Scanner.java:611)在 assn3prog3.Assn3Prog3.main(Assn3Prog3.java:31) /用户/ conormontgomery /Library/Caches/NetBeans/8.1/executor-snippets/run.xml:53: 爪哇返回:1个 BUILD FAILED(总时间:8秒)

免责声明:

import.java.io;” &“public static void main (String[] args) throws IOException

在程序

我使用这本书“开始接触JAVA:通过对象从控制”为基础的知识,如果这能帮助:)

+1

这与NetBeans或MacOS无关,但您误解了如何在'src'中放置'Program3.txt'。您不需要使用'File',而需要使用'Class#getResouce'(或'Class#getResourceAsStream')从应用程序上下文中获取资源。 – MadProgrammer

+0

另一种选择是只输入文件的完整绝对路径。 – pvg

+0

@MadProgrammer你说我不能把.txt文件放在src文件夹中? – Conor

回答

0

将文件放入src /目录时,它们会在程序内部生成。我相信你打算让文本文件在程序之外,以便它可以从文件加载。

程序有一个“工作目录”,它是程序运行的目录,并查找相关文件。当使用IDE时,工作目录永远不会在src /文件夹中,因为它不会使自己读取自己的源代码(在大多数情况下)。要找到工作目录,请尝试:

System.out.println(new File(".").getAbsolutePath()); 

这将打印您的程序的工作目录。您需要将文本文件移到那里,而不是在src /文件夹中。

+0

感谢你和@MadProgrammer – Conor

+0

那么,如何获得NetBeans在我的桌面上查找/打开文件? – Conor

+0

@Conor特定的操作系统,对于Mac我相信你可以创建文件路径“〜/ Desktop/Program3.txt”。这是绝对路径(相对路径是当你描述文件相对于当前文件的位置时)。当你提供一个绝对路径时,程序会在这个确切的位置查找。 – Knox