Java 如何让文件API查看我的类路径?

Java 如何让文件API查看我的类路径?,java,eclipse,java-io,Java,Eclipse,Java Io,我正在eclipse项目中读取一个ascii文件 默认输出文件夹设置为 my_proj/classes 它位于我的源路径上,当我构建它时,它会进入我的classes目录。好的。然而,当我试图在代码中通过 File myFile = new File("myFile.txt") 它不会工作,因为那个API会查看我的项目根。不是在我的课堂上 当我这样做时: System.out.println("Current path is = " + new File(".").getAbsolutePat

我正在eclipse项目中读取一个ascii文件

默认输出文件夹设置为

my_proj/classes
它位于我的源路径上,当我构建它时,它会进入我的classes目录。好的。然而,当我试图在代码中通过

File myFile = new File("myFile.txt")
它不会工作,因为那个API会查看我的项目根。不是在我的课堂上

当我这样做时:

System.out.println("Current path is = " + new File(".").getAbsolutePath ()); 
项目roo回来了,而不是我的类目录

因此,我无法处理我的文件

我希望将文件放在类路径上,让代码将其提取出来

任何提示?

您可以使用
getClass().getClassLoader().getResource(“您的\u文件”)

然后使用类似

 File file=new File(url.toURI());

编辑:正如和所指出的,如果“您的_文件”不是文件系统上的文件,而是捆绑在一个jar中,那么在这种情况下,您必须使用inputstream,
getClass().getClassLoader().getResourceAsStream(“您的_文件”)

您不需要。您使用
Class#getResource(String)
,其中
String
是相对于您所在类的包的资源路径。您可以使用
/
作为该路径的前缀,以从类路径的根开始,而不是相对于您所在类的包。文件API在这里并不总是起作用。使用
url.getInputStream()
。我没有-1.第一部分是对的。第二部分不会在资源在jar中时立即工作(即99.9%的时间)。使用
getResourceAsStream()
获取可读的流。