如果它已经在类路径中,则只需从类路径而不是从磁盘文件系统中获取它。不要在 中摆弄相对路径。它们依赖于当前的工作目录,您无法从Java代码内部完全控制该目录。java.io.File
假设它与你的类位于同一包中,那么请执行:ListStopWords.txt
FileLoader
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.getPath());
或者,如果您最终追求的只是其中之一:InputStream
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
这当然比创建更可取,因为 可能不一定表示磁盘文件系统路径,但它也可以表示虚拟文件系统路径(当 JAR 扩展到内存而不是磁盘文件系统上的临时文件夹时,可能会发生这种情况),甚至是网络路径,这两者都不是每个定义都可以由构造函数消化的。new File()
url
File
如果文件 (如包名称所提示的) 实际上是一个具有 “错误” 扩展名的完全有价值的属性文件(包含行),则可以立即将 该文件提供给 load()
方法。key=value
InputStream
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
注意:当您尝试从内部上下文访问它时,请使用(或其他任何内容)而不是在上面的示例中。static
FileLoader.class
YourClass.class
getClass()