我建了个abc.xml文件放在android工程的根目录下,如果在普通Java工程的话我用 File f = new File(abc.xml)就可以得到;但是在android环境下 会自动把这个路径变为 “/abc.xml”;然后报“ 11-18 08:58:43.572: WARN/System.err(19260): java.io.FileNotFoundException: /systemapps.xml (No such file or directory)”异常,可能是编译路径与以前不一样导致。
   那有什么办法可以读取这个xml文件呢?

解决方案 »

  1.   

    获取文件路径的方法1.绝对路径:/data/data/packagename/files/filename;2.context:context.getFilesDir()+”/filename”;缓存目录:/data/data/packagename/Cache或getCacheDir();如果文件过大就不能存放在手机的文件目录,需要存储到SDCard上。SDCard目录:/sdcard/或Environment.getExternalStorageDirectory()使用SDCard目录前,需要判断是否有sdcard:Environment.getExternalStorageState()。操作此目录时需要在主配置文件中注册操作权限。
    http://hi.baidu.com/garylijs/blog/item/afaa0dedeef215dbb31cb1d4.html
      

  2.   

    android不支持读取与工程直接子级的文件。解决办法是:
    在res文件夹下新建raw文件夹,然后将abc.xml复制到raw文件夹下。读取代码:
    InputStream input = getResources().openRawResource(R.raw.abc);
    BufferedReader read = new BufferedReader(new InputStreamReader(input));
    String line = "";
    while((line=read.readLine()) != null){
    System.out.println(line);
    }
      

  3.   

    或者
    res文件夹下新建raw文件夹,然后将abc.xml复制到raw文件夹下
    InputStream in = context.openFileInput("abc.xml");
      

  4.   

    这个不错,只要自定义的配置均可以当做资源文件被访问。用usr.dir则会由于工程而变化