簡體   English   中英

從資產文件夾中的文本文件加載數組(Android)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM