Android:读取/ data / data / <package_name> / files </package_name>下的文本文件

时间:2012-03-15 09:51:46

标签: android file text

我正在尝试从/ data / data / package_name / files下的文本文件中读取。

这是我的代码:

private String readTxt(String fileName)
{
    String result = "", line;
    try
    {
        File f = new File(fileName);
        BufferedReader br = new BufferedReader(new FileReader(f));
        while((line = br.readLine()) != null)
        {
            result += line + "\n";
        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return result;
}

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您应该使用应用程序上下文中的openFileInput方法。 http://developer.android.com/reference/android/content/Context.html#openFileInput(java.lang.String

这将为您的文件提供一个InputStream 例: final InputStream = getApplicationContext()。openFileInput(MY_FILENAME_WITHOUT_PATH);

答案 1 :(得分:0)

private String getStringFromFile(Context accessClass,String fileName){
    String result=null;
    FileInputStream fIn;
    ContextWrapper accessClassInstance=new ContextWrapper(accessClass);

    try {
        fIn = accessClassInstance.openFileInput(fileName);

        InputSource inputSource=new InputSource(fIn);
                    InputStream in = inputSource.getInputStream();

                  if (in != null) {
                 // prepare the file for reading
                      InputStreamReader input = new InputStreamReader(in);
                      BufferedReader buffreader = new BufferedReader(input);

                 result = "";
                while (( line = buffreader.readLine()) != null) {
                       result += line;
                  }
                     in.close();
      Toast.makeText(getApplicationContext(),"File Contents ==> " + result,Toast.LENGTH_SHORT).show();
      }


    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 



    return result;
}