You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中如何读取预定义TXT文件并转换为数组?

问题原因与解决方法

你当前代码无法读取文件的核心原因是:assets文件夹里的文件属于APK内置资源,不能用FileReader直接访问——FileReader只会去访问设备的外部文件系统,根本找不到APK里的assets文件,所以Logcat没有输出,同时会抛出FileNotFoundException(你可以在Logcat里查看详细异常信息)。

下面是正确的实现代码,既能读取assets里的list.txt,又能生成数组:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    List<String> contentList = new ArrayList<>();
    try {
        // 获取AssetManager,用于访问APK内置的assets资源
        AssetManager assetManager = getAssets();
        // 打开assets下的list.txt文件,获取输入流
        BufferedReader reader = new BufferedReader(new InputStreamReader(assetManager.open("list.txt")));
        
        String lineContent;
        while ((lineContent = reader.readLine()) != null) {
            Log.d("finally", lineContent);
            contentList.add(lineContent);
        }
        reader.close(); // 记得关闭流
        
        // 将List转换为字符串数组
        String[] contentArray = contentList.toArray(new String[0]);
        // 这里可以使用contentArray进行后续业务操作
    } catch (IOException e) {
        e.printStackTrace();
        Log.e("FileReadError", "读取assets文件失败: " + e.getMessage());
    }
}

关键注意事项

  • 确认assets文件夹位置正确(你的截图显示位置没问题,和java、res目录同级),文件名和代码中完全一致(Android对文件名大小写敏感)。
  • 读取完成后,通过List.toArray()即可将读取到的内容转为数组,满足你的需求。

内容的提问来源于stack exchange,提问作者marlon mattes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:27:09