(Android) - 非活动类文件无法打开" .txt"文件

时间:2014-06-11 17:56:53

标签: java android

这是我在.java类中获取.txt文件的方法

public static void find() throws IOException
{
    @SuppressWarnings("resource")
    Scanner sc = new Scanner(new FileReader("AllWords.txt"));


    while( sc.hasNextLine() )
    {
        String word = sc.nextLine();
        words.add(word);
        String sortedWord = sortString(word); // this is a key

        ArrayList<String> anagrams = map.get( sortedWord );  //this is a value

        if( anagrams == null ) anagrams = new ArrayList<String>();

        anagrams.add(word);
        map.put(sortedWord, anagrams);
    }

}

- 当我在一个Activity类中调用find()时它不会读取.txt文件,但是我已经在另一个程序中测试了这个代码并打开了文件,但是自从我转向Android - 开发我没有&#39;能够读取此文件。

- 我也尝试在Activity类中创建此方法,而android环境不喜欢&#34; SortString&#34;。

问题是我的.txt文件的位置?

以下是位置:enter image description here

2 个答案:

答案 0 :(得分:0)

  1. 为什么要使用TextFile?您可以使用Android开发默认的String.xml。 见:http://developer.android.com/guide/topics/resources/string-resource.html。 这可以减少代码行。

  2. 资源文件需要位于RES目录中而不是源包中; 请参阅:http://developer.android.com/guide/topics/resources/providing-resources.html

  3. 我希望这对你有所帮助。

    最诚挚的问候,

答案 1 :(得分:0)

您应该将文本文件放在&#34; assets&#34;文件夹并使用AssetManager内置类。

您可以使用以下方法创建新的扫描仪:

new Scanner(new File(getAssets().open("AllWords.txt")));

如果new File()不起作用,请使用InputStreamReader

new InputStreamReader(getAssets().open("filename.txt"));