File 存储
内部存储 Internal Storage
1, 特点
文件只能被当前应用程序访问, 其他应用程序不能访问
当应用程序卸载后, 程序在内部存储中的文件也会被删除
2, 路径
data/data/应用程序包名/files/***.***
3, 核心代码 FileOutputStream FileInputStream
程序的内部存储, 知道自己的路径在那里, 所以不需要指定
3.1 存入数据
// 1, 打开内部文件存储的输出流
// name 文件名称, mode 文件的操作模式
FileOutputStream fos = openFileOutput(fileName,Context.MODE_PRIVATE);
// 2, 写入数据
fos.write(content.getBytes());
// 3, 关闭流
fos.close();
3.2 读取数据
// 1, 打开内部存储文件的输入流
FileInputStream fis = openFileInput(fileName);
// 2, 读取数据
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
// 3, 关闭流
fis.close();
4, 内部存储的方法
String[] flieList() 得到内部存储中所有文件的名称
deleteFile(fileName) 删除指定的文件
1, 特点
1, 插入sd卡
2, 分为两部分: sd的公共目录 sd的私有目录
3, 公共目录下的文件可以被应用程序共享, 私有目录下的文件只能被当前应用程序访问
4, 当程序卸载后, 公共目录下的文件不会被清除, 私有目录下的文件会被清除
2, 路径
mnt/sdcard 4.0版本之前的目录
storage/sdcard 4.0后的目录 公共目录
storage/sdcard/Android/data/应用程序包名/... 私有目录
3, 读写sd卡的权限
WRITE_EXTERNAL_STORAGE 写sd卡的权限
READ_EXTERNAL_STOAGE 读sd卡的权限
4, 获取扩展卡的根目录
Environment.getExternalStorageDirectory()
5, 获取当前扩展卡的状态
Environment.getExternalStorageState()
MEDIA_MOUNTED 挂载的状态, sd卡已经被装载并且可以使用, 判断存储的状态符合该条件, 则能进行存取文件
6, 目录
context.getExternalFilesDir(null) 私有目录的根目录
context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOAD) 私有目录中的download目录中
context.getExternalCacheDir() 私有目录中的缓存目录
Environment.getExternalStorageDirectory() sd卡的根目录
Environment.getExternalStorageDirectory(Environment.DIRECTORY_DOWNLOAD) 公共目录中的download目录中
内部存储 Internal Storage
1, 特点
文件只能被当前应用程序访问, 其他应用程序不能访问
当应用程序卸载后, 程序在内部存储中的文件也会被删除
2, 路径
data/data/应用程序包名/files/***.***
3, 核心代码 FileOutputStream FileInputStream
程序的内部存储, 知道自己的路径在那里, 所以不需要指定
3.1 存入数据
// 1, 打开内部文件存储的输出流
// name 文件名称, mode 文件的操作模式
FileOutputStream fos = openFileOutput(fileName,Context.MODE_PRIVATE);
// 2, 写入数据
fos.write(content.getBytes());
// 3, 关闭流
fos.close();
3.2 读取数据
// 1, 打开内部存储文件的输入流
FileInputStream fis = openFileInput(fileName);
// 2, 读取数据
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
// 3, 关闭流
fis.close();
4, 内部存储的方法
String[] flieList() 得到内部存储中所有文件的名称
deleteFile(fileName) 删除指定的文件
File getFileDir() 得到应用程序数据文件的绝对路径
1, 特点
1, 插入sd卡
2, 分为两部分: sd的公共目录 sd的私有目录
3, 公共目录下的文件可以被应用程序共享, 私有目录下的文件只能被当前应用程序访问
4, 当程序卸载后, 公共目录下的文件不会被清除, 私有目录下的文件会被清除
2, 路径
mnt/sdcard 4.0版本之前的目录
storage/sdcard 4.0后的目录 公共目录
storage/sdcard/Android/data/应用程序包名/... 私有目录
3, 读写sd卡的权限
WRITE_EXTERNAL_STORAGE 写sd卡的权限
READ_EXTERNAL_STOAGE 读sd卡的权限
4, 获取扩展卡的根目录
Environment.getExternalStorageDirectory()
5, 获取当前扩展卡的状态
Environment.getExternalStorageState()
MEDIA_MOUNTED 挂载的状态, sd卡已经被装载并且可以使用, 判断存储的状态符合该条件, 则能进行存取文件
6, 目录
context.getExternalFilesDir(null) 私有目录的根目录
context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOAD) 私有目录中的download目录中
context.getExternalCacheDir() 私有目录中的缓存目录
Environment.getExternalStorageDirectory() sd卡的根目录
Environment.getExternalStorageDirectory(Environment.DIRECTORY_DOWNLOAD) 公共目录中的download目录中