java - 如何在 Android 的 Java 库中添加资源(例如文本文件)

标签 java android

我正在为 Android 创建一个 Java 库。该库的一部分依赖于一个文本文件,其中包含无法放入源代码文件中的大型数据集。

现在,当我在本地测试时它可以工作,但当我尝试将它用作库时它不起作用。

我有一种感觉,路径不正确,或者文件本身可能从库中丢失了。

我想知道在 Android Studio 中将文本文件添加到 Android Java 库的步骤。

我需要在构建文件中添加任何内容吗? 或者我必须将文本放在特定文件夹中吗? 或者我必须使用不同的代码来获取文件路径? 或其他东西。

我正在使用https://jitpack.io用于包存储库。

有关更多信息,您可以查看存储库 https://github.com/lifeparticle/PhotonyLibs

获取数据

File file = new File("AstroJava/src/main/resources/cities.txt");

项目结构

── AstroJava.iml
├── README.md
├── build
│   ├── ******             
│   │                      
│   └── tmp
│       └── ******
├── build.gradle
├── libs
└── src
    └── main
        ├── java
        │   └── app
        │       └── photony
        │           └── java
        │               └── astrojava
        │                   ├── CalendarHelper.java
        │                   ├── Cities.java
        │                   ├── Main.java
        │                   ├── MathHelper.java
        │                   ├── Moon.java
        │                   ├── Sun.java
        │                   └── TimeZoneHelper.java
        └── resources
            └── cities.txt

最佳答案

您可以将该文件放入“assets”文件夹中。

── AstroJava.iml
└── src
    └── main
        ├── java
        └── res
        └── assets
            └── cities.txt

您可以在代码中引用它,例如:

Kotlin

val inputStream = context.assets.open("cities.txt")

Java

try {
    InputStream inputStream = context.getAssets().open("cities.txt");
} catch (IOException e) {
    e.printStackTrace();
}

关于java - 如何在 Android 的 Java 库中添加资源(例如文本文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56122393/

相关文章:

java - 如何将通知图标设置为大

javascript - 导出到 WebGL 以用于 React Native

android - 线程 sleep 准确性

java - Android - 视频文件加密/解密会影响其质量吗?

java - 将 readline() 的值与字符串进行比较

java - 2 个 Java 进程 - 一个读取和一个写入同一个文件

java - Integer.valueOf() 与 Integer.parseInt()

java - 将 Java 列表转换为 Javascript 数组

java - Butterknife 不适用于适配器类

android - 如何将TextView背景颜色更改为初始值