Java 如何让文件API查看我的类路径?
我正在eclipse项目中读取一个ascii文件 默认输出文件夹设置为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
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()
获取可读的流。