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
相关产品推荐
相关产品推荐

