Java 从android的文件加载数组

Java 从android的文件加载数组,java,android,eclipse,Java,Android,Eclipse,假设每个单词都在单独的一行上,没有空行,那么上面的代码能否正确地将.txt文件中的所有单词加载到arraylist中 我正在开发一个android应用程序,那么我应该把实际的文件放在哪个项目文件夹中呢 什么时候我可以只输入“words.txt”,什么时候我必须输入完整的路径名,比如C:\Users\etc 此外,一旦程序编译并转换为.apk文件,如果该文件位于我的计算机上,它将如何从.txt文件加载单词?如果其他人使用该应用程序,该应用程序难道不能找到“words.txt”吗 我想将单词加载到一

假设每个单词都在单独的一行上,没有空行,那么上面的代码能否正确地将.txt文件中的所有单词加载到arraylist中

我正在开发一个android应用程序,那么我应该把实际的文件放在哪个项目文件夹中呢

什么时候我可以只输入“words.txt”,什么时候我必须输入完整的路径名,比如C:\Users\etc

此外,一旦程序编译并转换为.apk文件,如果该文件位于我的计算机上,它将如何从.txt文件加载单词?如果其他人使用该应用程序,该应用程序难道不能找到“words.txt”吗

我想将单词加载到一个数组中,而不需要包含1000个“.add()”语句的大量代码


我使用的是Android提供的ADT捆绑包附带的eclipse版本

将文件放在资产文件夹中,然后使用AssetManager从代码中检索或读取文件。

您需要将文件放在项目的资产文件夹中。这里有一个演示,你可以看看

如果只需要保留单词列表,可以将其存储在应用程序res下的数组中。 此解决方案假定您只需要保留一个单词列表

创建一个xml文件array.xml,如下所示:

File sample = new File("words.txt");

Scanner readWords = new Scanner(words);

while(scanner.hasNextLine())
{
    //assume that arrayListOfWords is a previously declared arrayList
    arrayListOfWords.add(readWords.nextLine());
}

字1
字2
字3
将此文件保存在res/values/array.xml中

将单词放入activity类中的arrayList中

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="words">
        <item>word1</item>
        <item>word2</item>
        <item>word3</item>
    </string-array>
</resources>
String[]arrayOfWords=getResources().getStringArray(R.array.words);
List arrayListOfWords=Arrays.asList(arrayOfWords);
希望这能满足你的需要。
但是,如果您需要将这些文字保存为txt文件,您可以将其放在assets文件夹中并从活动中读取。

您可以将其放在应用程序的asset文件夹中。
String[] arrayOfWords= getResources().getStringArray(R.array.words);
List<String> arrayListOfWords= Arrays.asList(arrayOfWords);