文件保存和读取

来源:互联网 发布:电脑热点分享软件 编辑:程序博客网 时间:2024/04/30 02:43

一、文件的保存(内存和sd卡),四种操作模式

public class FileService {/** * 保存文件 * @param filename 文件名称 * @param content 文件内容 */ private Context context;  public FileService(Context context) {super();this.context = context;}//写到sd卡上,new File("/mnt/sdcard") 下面方式适用不同版本  需要获得文件写入的权限public void saveToSDCard(String filename, String content) throws Exception {File file = new File( new File(Environment.getExternalStorageDirectory(), content), filename);FileOutputStream outStream = new FileOutputStream(file);write(content, outStream);outStream.close();}    //该openFileOutput流写到手机内存中 public void save(String filename, String content) throws Exception {//IO j2se;私有模式创建的文件只能被本应用访问,写入的内容可以覆盖原文件的内容FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_PRIVATE);outStream.write(content.getBytes());outStream.close();}private void write(String content, FileOutputStream outStream)throws IOException {outStream.write(content.getBytes());outStream.close();}public void saveAppend(String filename, String content) throws Exception {FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_APPEND);write(content, outStream);}public void saveWriteable(String filename, String content) throws Exception {FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_WORLD_WRITEABLE);write(content, outStream);}public void saveWR(String filename, String content) throws Exception {FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);write(content, outStream);}//写3 也行/** * 读取文件内容 * @param filename * @return * @throws Exception */public String read(String filename) throws Exception{FileInputStream inStream = context.openFileInput(filename);ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while((len = inStream.read(buffer))!= -1){outStream.write(buffer, 0, len);}byte[] data = outStream.toByteArray();return new String(data);}}


添加权限<!-- 在SDCard创建删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 在SDCard写入文件权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

二、判断sd卡是否可用

FileService service = new FileService(getApplicationContext());try {//判断sd卡是否存在可以读写if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){service.saveToSDCard(filename,content);Toast.makeText(getApplicationContext(), R.string.success, 1).show();}else{Toast.makeText(getApplicationContext(), R.string.sdcarderror, 1).show();}} catch (Exception e) {Toast.makeText(getApplicationContext(), R.string.fail, 1).show();e.printStackTrace();}




0 0
原创粉丝点击