Android文件访问

Posted jiegeluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android文件访问相关的知识,希望对你有一定的参考价值。

android中对于文件操作除了java的基础库汇总的IO、File等之外,还提供了几种API

1、Context类提供的openFileOutput()和openFileInput()两个方法分别获取IO流,然后就可以进行相关读写操作了。
  写操作中有个文件的操作模式的参数,也是Context提供的几个常量:MODE_PRIVATE,覆盖文件,默认模式;
  MODE_APPEND,追加内容,不存在就新建。
  //读取文件
public String load(Context context,String fileName) { FileInputStream is=null; BufferedReader reader=null; StringBuilder result=new StringBuilder(); try { is=context.openFileInput(fileName); reader = new BufferedReader(new InputStreamReader(is)); String l=""; while((l=reader.readLine())!=null) { result.append(l); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(reader!=null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return result.toString(); }

 

//写入文件   
public boolean write(Context context,String fileName,String content) { FileOutputStream os=null; BufferedWriter writer=null; try { os=context.openFileOutput(fileName,context.MODE_APPEND); writer=new BufferedWriter(new OutputStreamWriter(os)); writer.write(content); return true; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(writer!=null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } return false; }

 

2、下面使用的四个Environment的方法,获取当前运行环境的四个不同目录,返回一个File对象,我们可以依据这个File

对象进行新建、写入、读取等操作。对于不同厂商,对于sd卡手机内存的访问api可能会有修改,这些需要实际情况,实际分析。

        Log.i("info","getDataDirectory()"+Environment.getDataDirectory().getAbsolutePath());
        Log.i("info","getRootDirectory()"+Environment.getRootDirectory().getAbsolutePath());
        Log.i("info","getExternalStorageDirectory()"+Environment.getExternalStorageDirectory().getAbsolutePath());
        Log.i("info","getExternalStoragePublicDirectory()"+Environment.getExternalStoragePublicDirectory("basePath").getAbsolutePath());

 










以上是关于Android文件访问的主要内容,如果未能解决你的问题,请参考以下文章

Android:使用 putExtra 从片段访问容器活动对象?

Android片段布局完成膨胀

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

从适配器访问片段

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

使用绑定从片段访问父活动的 UI 元素