Context类中openFileOutput ()函数的使用
函数声明:
FileOutputStream openFileOutput (String name, int mode)
作用:可以方便的在手机中创建文件,并返回文件输出流,用于对文件做写入操作。
name:
用于指定文件名称,不能包含路径分隔符“/”,如果文件不存在,Android会自动创建它。创建的文件保存在/data/data/<package name>/files/目录中。如:/data/data/GH.Test/files/abc.txt
mode取值:
MODE_APPEND 私有(只有创建此文件的程序能够使用,其他应用程序不能访问),在原有内容基础上增加数据
MODE_PRIVATE 私有,每次打开文件都会覆盖原来的内容
MODE_WORLD_READABLE 可以被其他应用程序读取
MODE_WORLD_WRITEABLE 可以被其他应用程序写入
另:1.FileInputStream openFileInput (String name)
返回文件输入流,用于对文件的读操作。
2. Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
访问sdcard
1、在程序中要访问sd卡就要申请sd卡的访问权限
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2、sd卡路径
2.2前 /sdcard
2.2后 /mnt/sdcard 最好获得路径方法:Environment.getExternalStorageDirectory()
3、将文件写入sdcard的时候要判断用户时候插入sdcard并且可以读写
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED
函数声明:
FileOutputStream openFileOutput (String name, int mode)
作用:可以方便的在手机中创建文件,并返回文件输出流,用于对文件做写入操作。
name:
用于指定文件名称,不能包含路径分隔符“/”,如果文件不存在,Android会自动创建它。创建的文件保存在/data/data/<package name>/files/目录中。如:/data/data/GH.Test/files/abc.txt
mode取值:
MODE_APPEND 私有(只有创建此文件的程序能够使用,其他应用程序不能访问),在原有内容基础上增加数据
MODE_PRIVATE 私有,每次打开文件都会覆盖原来的内容
MODE_WORLD_READABLE 可以被其他应用程序读取
MODE_WORLD_WRITEABLE 可以被其他应用程序写入
另:1.FileInputStream openFileInput (String name)
返回文件输入流,用于对文件的读操作。
2. Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
访问sdcard
1、在程序中要访问sd卡就要申请sd卡的访问权限
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2、sd卡路径
2.2前 /sdcard
2.2后 /mnt/sdcard 最好获得路径方法:Environment.getExternalStorageDirectory()
3、将文件写入sdcard的时候要判断用户时候插入sdcard并且可以读写
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED
-----------------------------------------------------------------------------------------------------------------------------------------
import android.content.Context;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**
* Created by Administrator on 2016/8/23.
*/
public class FileUtils {
/**
* 写对象流
*
* @param context
* @param obj
* @param name
*/
public static void write(Context context, Object obj, String name) {
try {
FileOutputStream fileOutputStream = context.openFileOutput(name, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fileOutputStream);
oos.writeObject(obj);
oos.close();
fileOutputStream.close();
} catch (IOException e) {
// e.printStackTrace();
}
}
/**
* 读取数据
*
* @param context
* @param name
* @return
*/
public static Object read(Context context, String name) {
Object obj = null;
try {
FileInputStream fileInputStream = context.openFileInput(name);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
obj = objectInputStream.readObject();
objectInputStream.close();
fileInputStream.close();
} catch (IOException | ClassNotFoundException e) {
// e.printStackTrace();
}
return obj;
}
/**
* 删除文件
*
* @param context
* @param name
*/
public static void deleteFile(Context context, String name) {
context.deleteFile(name);
}
}