今天介绍一下Android 读写SD卡的文件,要读写SD卡上的文件,首先需要判断是否存在SD卡,方法:
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
然后才能读写SD卡上的文件,调用Environment的getExternalStorageDirectory()方法获取外部存储器(SD卡)的目录。
使用FileInputStream、FileOutputStream、FileReader或FileWriter读、写SD卡里的文件。
需要注意是要添加相应的权限。
<!-- 在SD卡中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 向SD卡写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
读、写文件的关键代码:
private String read() { try { //如果手机插入了SD卡,而且应用程序具有访问SD的权限 if (Environment.getExternalStorageState() .equals(Environment.MEDIA_MOUNTED)) { //获取SD卡对应的存储目录 File sdCardDir = Environment.getExternalStorageDirectory(); //获取指定文件对应的输入流 FileInputStream fis = new FileInputStream(sdCardDir .getCanonicalPath() + FILE_NAME); //将指定输入流包装成BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(fis)); StringBuilder sb = new StringBuilder(""); String line = null; while((line = br.readLine()) != null) { sb.append(line); } return sb.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } private void write(String content) { try { //如果手机插入了SD卡,而且应用程序具有访问SD的权限 if (Environment.getExternalStorageState() .equals(Environment.MEDIA_MOUNTED)) { //获取SD卡的目录 File sdCardDir = Environment.getExternalStorageDirectory(); File targetFile = new File(sdCardDir.getCanonicalPath() + FILE_NAME); //以指定文件创建 RandomAccessFile对象 RandomAccessFile raf = new RandomAccessFile( targetFile , "rw"); //将文件记录指针移动到最后 raf.seek(targetFile.length()); // 输出文件内容 raf.write(content.getBytes()); raf.close(); } } catch (Exception e) { e.printStackTrace(); } }