我有一个文本文件,我试图转换为String数组(其中每一行是数组的一个元素)。 我在这里找到了一个似乎完美的代码,唯一的问题是,即使我使用文件的相对路径,我得到一个FileNotFoundException。 相对文件路径:
String path = "android.resource://"+getPackageName()+"/app/src/main/res/raw/"
+ getResources().getResourceEntryName(R.raw.txtAnswers);
当我尝试在阅读器中使用此路径时
BufferedReader reader = null;
try{
reader = new BufferedReader(new FileReader(path));
......
路径以红色下划线并表示FileNotFoundException。 也许它期待另一种类型的路径(不是相对的?)或者我是否错路径?
答案 0 :(得分:0)
相对文件路径
这不是文件路径。
也许它期待另一种路径
res/raw/...
是您硬盘上的文件。 不设备上的文件。
要访问原始资源,请使用getResources()
(在任何Context
上调用,如Activity
或Service
)来获取Resources
对象。然后,call openRawResource()
传入您的资源ID,以获取该资源内容的InputStream
。
答案 1 :(得分:0)
据我所知,最好的方法是通过源代码的txt
文件夹中的assets
文件。
要使用File
,只需使用以下代码段:
InputStream inputStream = getAssets().open("YOUR_TEXT_FILE");
它返回InputStream
,可进一步用于阅读File
&将数据转换为Array