如何从Android中的src / instrumentTest / resources目录中读取文件?

时间:2014-02-17 15:29:27

标签: android testing android-gradle

我有一个使用新标准gradle布局的Android应用程序:

  src/main/java
  src/main/resources
  src/instrumentTest/java
  src/instrumentTest/resources

我在src/instrumentTest/java/com/example/MyUnitTest.java中有一个单元测试,用于读取 src/instrumentTest/resources/testfile.json

中的文件
  • 第一个问题:它是放置测试文件的正确位置吗?
  • 第二个问题:如何在字符串中读取该文件?

我尝试过这两种方法在单元测试中读取文件但没有成功(找不到文件):

String myJson = new Scanner(new File("testfile.json"),"UTF-8").useDelimiter("\\A").next();

String myJson = new Scanner(new File("resources/testfile.json"),"UTF-8").useDelimiter("\\A").next();

干杯!

1 个答案:

答案 0 :(得分:5)

您可以使用您正在测试的构建类型的assets文件夹。如果您正在测试调试类型(这是默认类型):

src/debug/res/assets

然后使用

访问这些文件
InputStream raw = context.getAssets().open("filename.ext");
String myJson = new Scanner(raw).useDelimiter("\\A").next();

使用 debug 构建类型的技巧可以防止您的测试资源被打包到最终的apk中。