从文件加载数组为android

时间:2013-12-26 06:21:33

标签: java android eclipse

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());
}

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

我正在开发一个Android应用程序,所以在我的项目文件夹中我应该放置实际文件?

我什么时候可以只使用“words.txt”,何时需要输入完整路径名,例如C:\ Users \ etc ...

此外,一旦程序编译并转换为.apk文件,如果文件位于我的计算机上,如何从.txt文件中加载单词?如果其他人使用该应用程序,该应用程序是否无法找到“words.txt”?

我希望将单词加载到数组中而不需要使用1000“.add()”语句的大量代码。

我正在使用Android提供的ADT套件附带的eclipse版本

3 个答案:

答案 0 :(得分:1)

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

创建一个xml文件array.xml,

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

    <string-array name="words">
        <item>word1</item>
        <item>word2</item>
        <item>word3</item>
    </string-array>
</resources>

将此文件保存在res / values / array.xml

将单词放入活动类中的arrayList中。

String[] arrayOfWords= getResources().getStringArray(R.array.words);
List<String> arrayListOfWords= Arrays.asList(arrayOfWords);

希望这符合您的需求。 但是如果你需要将这些单词保存为txt文件。你可以将它放在assets文件夹中并从你的活动中读取它。

答案 1 :(得分:0)

将您的文件放入Assets文件夹&amp;然后从您的代码中,您可以使用AssetsManager检索或读取您的文件。

答案 2 :(得分:-1)

您需要将文件放在项目的assets文件夹中。有一个演示,你可以检查出来。 http://sunil-android.blogspot.in/2013/05/read-file-from-assets.html