程序
我正在编写一个小测试来读取CSV文件(使用testng)。我找到了一些代码来做到这一点,还有一些其他行来查找资源文件夹本身。
现在,当我在其他场景中重复使用它时,我认为我可以创建一个 util 方法而不是复制粘贴:
public static String prepFilepath(Class c) {
URL url = c.getResource("");
String location = url.getPath();
String packageName = c.getPackage().getName().replace(".", "/");
int l = location.lastIndexOf(packageName);
return location.substring(0, l);
}
我的测试是这样调用的:
@Test
public void testImport(){
File testFile = new File(ImportUtils.prepFilepath(this.getClass()), inputFileName);
//...
}
但是我不知道这是否正确:
- 可以将
- 类引用作为参数传递吗?(我以前从来没有为了这么小的目的这样做过)
- 还有更优雅的方式吗?
- 它是否足够通用以证明效用的合理性?
编辑:我正在使用测试
如果文件与类在同一个包中,那么我们可以通过这种方式获取文件的 URL
URL url = getClass().getResource(fileName);
如果我们需要从 URL 获取文件,我们可以这样做
File file = new File(url.toURI());