Android:加载位于 app/src/main/中的文本文件

标签 android text-files

我正在尝试使用一些代码将基本变更日志从文本文件加载到警报对话框中。唯一的问题是我无法让我的代码找到我的变更日志文件的位置。文件“changelog”位于 app/src/main/中。这是我的代码示例。

private void displayChangelogDialog() {
    Context context = this;
    try {
        new AlertDialog.Builder(this)
                .setTitle("Changelog")
                .setMessage(readFile(getApplicationContext().getFilesDir().getAbsolutePath() + "/app/src/main/changelog"))
                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // do nothing
                    }
                })
                .show();
    } catch (IOException e) {
        Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
}

我对 getFilesDir() 或 getAbsolutePath() 不是很熟悉,所以我想如果有人能帮助我找出我做错了什么,这将是一次很好的学习经历。我确定问题出在我输入的路径上,但此刻我有点难过。提前致谢。

最佳答案

getFilesDir 文档:

返回文件系统目录的绝对路径,其中存储了使用 openFileOutput(String, int) 创建的文件。

通常,openFileOutput 访问/data/data,这与您的应用程序安装路径完全不同。 如果你想访问一个文件,把它放在 assets 文件夹中检查 Assets 相关的功能(参见 AssetManaget )

关于Android:加载位于 app/src/main/中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22788105/

相关文章:

android - 依靠聊天无法正常工作 QuickBlox

android - 将项目粘贴到 recyclerview 顶部

ios - 在 iOS 中解析和处理文本字符串

c++ - 即时将 .txt 文件转换为 .pdf 文件?

android - 在多个设备上同步通知

android - listview onitemclicklistener 不总是响应

java - 从文本文件中提取匹配行

python - 从现有列表创建重复元素的列表

java - 为什么Fragment是通过工厂方法实例化的呢?

python - 使用 NLTK 和 Python 从文本文件中读写 POS 标记的句子