Java 从资产文件夹中的文本文件加载数组(Android)

Java 从资产文件夹中的文本文件加载数组(Android),java,android,eclipse,Java,Android,Eclipse,请 我知道这个问题已经被问过很多次了,但我仍然无法让我的代码正常工作 我的资产文件夹中有一个名为words.txt的文本文件。该文本文件的每行中每行有一个单词,没有空行。我想把每个字都排成一个数组 首先,我尝试使用scanner,但在阅读了许多stackoverflow线程后,我发现我需要使用AssetManager 以下是我尝试过的: AssetManager assetManager = getAssets(); InputStream inputStream = assetManager.

我知道这个问题已经被问过很多次了,但我仍然无法让我的代码正常工作

我的资产文件夹中有一个名为words.txt的文本文件。该文本文件的每行中每行有一个单词,没有空行。我想把每个字都排成一个数组

首先,我尝试使用scanner,但在阅读了许多stackoverflow线程后,我发现我需要使用AssetManager

以下是我尝试过的:

AssetManager assetManager = getAssets();
InputStream inputStream = assetManager.open("words.txt");
它给了我一条错误消息:
默认构造函数无法处理隐式超级构造函数引发的异常类型IOException…
,在我做任何其他事情之前。我不知道这是什么意思

另外,看看api,InputStream似乎只能读取字节。如何从文本文件中读取单词

线程是压倒性的,因为似乎每个答案都提出了不同的方法,使用InputStreams、BufferedStreams、FileInputStreams、File、Res文件夹、Asset文件夹和许多我不熟悉的其他语言。我正在学习开发android应用程序,java经验有限。

请使用以下方法:

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);
}
使用以下命令:

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/values/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);

您可以使用xml加载以下词语:

res/values/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);

您可以按如下所示操作:

    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();
    }
试试看{
BufferedReader bReader=新的BufferedReader(新的InputStreamReader(getAssets().open(“file.txt”));
ArrayList值=新的ArrayList();
字符串行=bReader.readLine();
while(行!=null){
值。添加(行);
line=bReader.readLine();
}
bReader.close();
用于(字符串v:值)
Log.i(“数组为”,v);
}捕获(IOE异常){
e、 printStackTrace();
}

您可以执行如下操作:

    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();
    }
试试看{
BufferedReader bReader=新的BufferedReader(新的InputStreamReader(getAssets().open(“file.txt”));
ArrayList值=新的ArrayList();
字符串行=bReader.readLine();
while(行!=null){
值。添加(行);
line=bReader.readLine();
}
bReader.close();
用于(字符串v:值)
Log.i(“数组为”,v);
}捕获(IOE异常){
e、 printStackTrace();
}
将您的阵列放入 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>
把你的阵列放进去 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>

AssetManager
扫描仪都是必需的。
扫描仪
执行您在末尾指出的操作:
字节[]
字符串
。可能需要重复
资产管理器
扫描仪
扫描器
执行您在末尾指出的操作:
字节[]
字符串
。可能重复