我想在Android检测测试中以某种方式阅读File
对象。
我正在尝试使用assets
androidTest
文件夹来获取它
File("//android_asset/myFile.jpg")
不幸的是我无法获得此文件。有谁知道如何创建这样的File
对象?它不一定必须位于assets
答案 0 :(得分:1)
如果您需要在设备中复制文件(例如,为了测试需要文件路径而不是流的C ++库),则可以通过以下方式手动复制:
@Test
public void checkFileWorkingTxt() throws IOException {
String path = "filepath.txt";
Context context = InstrumentationRegistry.getTargetContext();
// Creation of local file.
InputStream inputStream = context.getResources().getAssets().open(path);
// Copy file to device root folder
File f = new File(context.getExternalCacheDir() + path);
FileOutputStream outputStream = new FileOutputStream(f);
FileUtils.copy(inputStream, outputStream);
// Check that everything works with native function
bool result = NativeLibrary.check_txt(f.getAbsolutePath());
assertTrue(result);
}
这可能不是最好的方法,但是它可行。
答案 1 :(得分:-1)
假设您在src/androidTest/assets/myasset.txt
下有一个文件,您可以像InstrumentationRegistry.getContext().getResources().getAssets().open("myasset.txt");