Android 文件IO总结
16lz
2021-01-23
android 文件读写
文件级别
- MODE_PRIVATE
- MODE_WORLD_READABLE
- MODE_WORLD_WRITEABLE
内部存储
- 获取文件输出流
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE)
- 获取文件输入流
FileInputStream fis = openFileInput(FILENAME, Context.MODE_PRIVATE);
- getFileDir(): 获取内部存储绝对路径
- getDir(): 创建或打开内部储存目录
- deleteFile(): 删除内部存储文件
- filelist(): 获取文件夹下文件列表
- 使用缓存文件:
public File getTempFile(Context context, String url) { File file; try { String fileName = Uri.parse(url).getLastPathSegment(); file = File.createTempFile(fileName, null, context.getCacheDir()); } catch (IOException e) { } return file;}
外部存储
- getExternalStoragePublicDirectory(): 获取外部存储目录
public:不会随着创建它的 app 卸载而删除
public File getAlbumStorageDir(String albumName) { File file = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) { Log.e(LOG_TAG, "Directory not created"); } return file;}
- getExternalFilesDir(): 获取外部存储目录
private:随着创建它的 app 卸载而删除
public File getAlbumStorageDir(Context context, String albumName) { File file = new File(context.getExternalFilesDir( Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) { Log.e(LOG_TAG, "Directory not created"); } return file;}
文件访问权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
检查外部存储状态
- 是否存在
public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false;}
- 是否可读
public boolean isExternalStorageReadable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { return true;}
更多相关文章
- Android 下载文件至SD卡,并用progressBar显示下载进度
- Android--取出SDcard卡上指定后缀名的文件
- Android drawable 目录下 创建子目录问题
- AndroidManifest.xml文件详解(service)
- Android 实现 选择文件对话框
- Android attrs文件(自定义)属性详解
- Android 使用AsyncHttpClient文件上传与下载
- AndroidManifest文件中android属性