1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android文件操作中的openFileOutPut和openFileInput

Android文件操作中的openFileOutPut和openFileInput

时间:2019-11-02 22:40:44

相关推荐

Android文件操作中的openFileOutPut和openFileInput

概述:

之前我写过一篇博客,叫《Android中SharedPreferences与Editor的使用》。说的是在Android程序中保存数据(多是一些配置参数的数据)的应用。Android中的5种数据存储方式在之前的那篇文章中也有简单介绍。今天,我就来说说Android文件操作中的openFileOutPut和openFileInput。

我想大家或多或少都有学习过一段时间的Java吧,学习Android,Java是基础。今天要写的这个文件操作与Java中文件操作基本上是差不多的。都是要先去创建一个输入流/输出流,然后,我们就是通过从指定文件中按字节来读取文件中的内容到我们的输入流中,再把读进来的数据追加到一个字符串缓存中(这里用的是StringBuilder),当然你要是觉得不喜欢new来new去,也可以直接使用String类型的字符串。

供读文件关键代码:

/*** 读数据*/private void readerDataFromSD() {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 获取SDcard路径StringBuilder sb = new StringBuilder();try {File sdCardDir = Environment.getExternalStorageDirectory();File file = new File(sdCardDir, FILE_NAME);InputStream inputStream = new FileInputStream(file);int len = 0;byte[] buffer = new byte[1024];while ((len = inputStream.read(buffer)) != -1) {sb.append(new String(buffer, 0, len));}mShowResultTextView.setText(sb.toString());inputStream.close();} catch (Exception e) {e.printStackTrace();}}}

写文件的时候,我们要先创建一个输出流,再将FileOutputStream包装成PrintStream,最后输出。当然,大家也可以不用包装流,直接使用节点流写数据也可以,就像上面读数据一样。

写文件关键代码:

/*** 写数据*/private void writeData2SD() {System.out.println("往SDCard里写数据");// 先判断是否有SDCardif (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {String content = mContentEditText.getText().toString();try {// 获取SDcard路径File sdCardDir = Environment.getExternalStorageDirectory();File file = new File(sdCardDir, FILE_NAME);// File file = new File(sdcardPath + File.separator + FILE_NAME);// 以指定文件创建RandomAccessFile对象RandomAccessFile raf = new RandomAccessFile(file, "rw");// 将文件记录指针移动最后raf.seek(file.length());// 输出文件内容raf.write(content.getBytes());raf.close();} catch (Exception e) {e.printStackTrace();}}}

大家可以看到上有一句

raf.seek(file.length());

它是将文件记录指针移动到最后的位置。所以这种方式就是以追加的方式来写文件了。如果你不想以这种方式来写文件,那就要把这句话除掉。

权限说明:

另外,别忘了添加读写文件的权限:

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

参考资料:

《疯狂Android讲义》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。