安卓读取文本文件

5

我正在使用Android Studio制作项目,在我的项目文件夹中有一个文本文件,每次编译时,我希望我的代码可以读取那个.txt文件。当所有事情都完成时,我希望那个.txt文件在.apk文件内。我不想从SD卡等地方读取。

但是,每次我编译时都会出现“文件未找到异常”。使用eclipse时,当您将.txt文件放在与您的项目相同的目录中时,代码可以找到.txt文件,没有问题,但在Android Studio中,它无法找到我刚刚创建的文本文件。我需要把我的.txt文件放在哪个文件夹里?
这是代码:

FileReader in = new FileReader("TEXTgreetingKeywords.txt"); 
final BufferedReader br = new BufferedReader(new InputStreamReader(in));

我曾经在Java中使用同样的方法来读取文本文件。我不明白为什么在Android上它不能工作,因为Android也使用Java。
编辑------ 我尝试使用资产管理器,但我再次遇到了相同的错误。
AssetManager asset = getAssets();
    try {
         in = asset.open("text.txt");
    } catch (IOException e) {
        e.printStackTrace();
    }

我需要将路径更改为"C:\App\main\text.txt"吗?

也许 assets 文件夹是你正在寻找的。 - R. Adang
3个回答

3

从Assets读取文本文件:

在资源目录中创建raw文件夹:

将文件粘贴到raw文件夹中:

从文件中读取文本:

private String readText() {
        InputStream inputStream = getResources().openRawResource(
                R.raw.license_agreement);
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        int i;
        try {
            i = inputStream.read();
            while (i != -1) {
                byteArrayOutputStream.write(i);
                i = inputStream.read();
            }
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return byteArrayOutputStream.toString();
    }

希望这能对你有所帮助。


0
为了完成R. Adang的评论: 您正在寻找assets文件夹。您必须将其放置在与res文件夹相同的位置。 assets中的文件将包含在APK中。
您可以通过使用AssetManager访问assets中的文件。通过使用context.getAssets()获取AssetManager的实例。

感谢完成!:P 在这里,给你一个赞。 - R. Adang
我按照你说的尝试了,我创建了一个资产文件夹,但是当我尝试使用代码访问它时,我再次遇到了相同的错误。我正在编辑问题,你能再次检查一下吗? - berkc
我尝试了同样的事情,没有问题。你是怎么创建你的资产文件夹的?我的在这里:MyApplication/app/src/main。 - Will Bobo

-1

文件访问在这种情况下不仅是Java的事情,您还有Android,这可能会引起问题。您试图使用File打开应用程序位置中的文件。为了访问文件目录,您应该使用:context.getFilesDir()

然后您可以使用基本的File构造函数。我希望这就是您要寻找的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接