首页 > 代码库 > file(内部存储与外部存储)
file(内部存储与外部存储)
android的文件编程与JAVA下的文件编程无太多区别,注意的是几点。
1、android的文件系统分为内部和外部两种,内部是指系统的指定目录:/data/data/Activity所在的包/files,外部通常是SD卡,如下代码:
textview.setText(getApplicationContext().getFilesDir() + ": " + Environment.getExternalStorageDirectory().getAbsolutePath());
执行结果分别为:/data/data/com.example.data02/files 以及mnt/sdcard。
2、对内部存储系统操作,Android提供了openFileOutput和openFileInput,代码如下:
FileOutputStream outputStream; try { /* MODE_PRIVATE 私有(只能创建它的应用访问) 重复写入时会文件覆盖 * MODE_APPEND 私有 重复写入时会在文件的末尾进行追加,而不是覆盖掉原来的文件 * MODE_WORLD_READABLE 公用 可读 * MODE_WORLD_WRITEABLE 公用 可读写*/ outputStream = openFileOutput("test.txt", Activity.MODE_PRIVATE); outputStream.write(textview.getText().toString().getBytes()); outputStream.flush(); outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { FileInputStream in = this.openFileInput("test.txt"); byte[] buffer = new byte[1024]; in.read(buffer); String str = EncodingUtils.getString(buffer, "UTF-8"); textview1.setText(str.toString()); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
3、针对SD卡的文件系统操作,与JAVA文件编写一样,唯一要注意的是增加权限:
<span style="white-space:pre"> </span><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <span style="white-space:pre"> </span><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
代码实例如下:
File sdcDir = Environment.getExternalStorageDirectory(); File file = new File(sdcDir,"info.txt"); try { FileOutputStream output = new FileOutputStream(file); output.write(textview.getText().toString().getBytes()); output.flush(); output.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { FileInputStream inn = new FileInputStream(file); byte[] buffer = new byte[1024]; inn.read(buffer); String str = EncodingUtils.getString(buffer, "UTF-8"); textview2.setText(str.toString()); inn.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
file(内部存储与外部存储)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。