请,
我知道这个问题已被多次询问,但我仍然无法让我的代码工作。
我的资源文件夹中有一个名为words.txt的文本文件。该文本文件的每一行中每行有一个单词,没有空行。我想把每个单词放在一个数组中。
首先我尝试使用扫描仪,但在阅读了很多stackoverflow线程后,我发现我需要使用AssetManager。
这是我试过的:
AssetManager assetManager = getAssets();
InputStream inputStream = assetManager.open("words.txt");
在我做任何其他事情之前,它给出了错误消息:default constructor cannot handle exception type IOException thrown by implicit super constructor...
。我不知道这意味着什么。
另外,看看api,似乎InputStream只能读取字节。如何从文本文件中读取文字?
线程是压倒性的,因为看起来每个答案提出了一个不同的方法,使用InputStreams,BufferedStreams,FileInputStreams,File,Res文件夹,资产文件夹以及许多我不熟悉的其他语言。我只是在学习开发Android应用程序,并且Java经验有限。
答案 0 :(得分:4)
您可以执行以下操作:
try {
BufferedReader bReader = new BufferedReader(new InputStreamReader(getAssets().open("file.txt")));
ArrayList<String> values = new ArrayList<String>();
String line = bReader.readLine();
while (line != null) {
values.add(line);
line = bReader.readLine();
}
bReader.close();
for (String v : values)
Log.i("Array is ", v);
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
使用此:
Resources rs = getResources();
InputStream inputStream = rs.openRawResource(R.raw.sample);
BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
while ((line = r.readLine()) != null) {
array.append(line);
}
答案 2 :(得分:0)
您可以使用xml加载以下字词:
<强> RES /值/ strings.xml中:强>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
</string-array>
</resources>
在课程档案中
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);
答案 3 :(得分:0)
把你的数组放进去 res / values / strings.xml as
<string-array name="spinnerNames">
<item>Trust</item>
<item>Grade</item>
<item>Location</item>
<item>Contract Type</item>
<item>Speciality</item>
</string-array>
并将数组加载为:
String[] spinnerNames = getResources().getStringArray(R.array.spinnerNames);