[英]Loading array from a text file in assets folder (Android)
請,
我知道這個問題已經問過很多遍了,但是我仍然無法使我的代碼正常工作。
我的資產文件夾中有一個名為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文件夾,Asset文件夾以及我不熟悉的許多其他語言。 我正在學習開發android應用程序,並且Java經驗有限。
您可以如下所示:
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();
}
用這個:
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);
}
您可以使用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);
將數組放在res / values / strings.xml中作為
<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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.