利用IO流保存文件
/**
* 保存文件
* @param filename 文件名称
* @param content 文件内容
* @throws FileNotFoundException
*/
public void save(String filename,String content) throws Exception{
//利用io技术实现文件的保存
//1 得到文件的输出流对象
FileOutputStream fileOutputStream = context.openFileOutput(filename, Context.MODE_PRIVATE);
//2 写入数据
fileOutputStream.write(content.getBytes());
fileOutputStream.close();
}
读取本地文件
//读取数据
public String read(String filename) throws Exception{
//得到输入流对象
FileInputStream inStream = context.openFileInput(filename);
//读取数据,将数据读取到一个字节数组中
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len =0;
while((len = inStream.read(buffer))!=-1){
outputStream.write(buffer, 0, len);
}
//得到存放在内存中的所有数据
byte[] data = outputStream.toByteArray();
return new String(data);
}
往SDCard中保存文件
/**
* 把文件保存到sdcard中
* @throws Exception
*
*/
private void saveToSDcard(String filename,String content) throws Exception
{
//dir 文件保存路径
//filename 文件名
File file = new File(“/mnt/sdcard”, filename);
//申请文件输出流对象
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(content.getBytes());
outputStream.close();
}
在程序中访问SDCard,需要申请访问SDCard的权限/*
* 在程序访问中,需要申请访问sd卡的权限
* 在SDCard中创建与删除文件权限
* user-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS”
* 往sdcard写入数据权限
* user-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”
* */
判断sdcard是否存在,并且可读写
try {
//判断SDCard是否存在,并且可读写
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
service.saveToSDcard(filename, filecontent);
Toast.makeText(getApplicationContext(), R.string.success, Toast.LENGTH_SHORT).show();
}