zoukankan      html  css  js  c++  java
  • Android 读写SD卡的文件

      今天介绍一下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();
            }
        }


     

  • 相关阅读:
    [LeetCode] Min Stack
    [LeetCode] Find Minimum in Rotated Sorted Array
    [LeetCode] Maximum Product Subarray
    [Jobdu] 题目1504:把数组排成最小的数
    [Jobdu] 题目1544:数字序列区间最小值
    Python2.3-原理之语句和语法
    Python2.5-原理之模块
    Vim2.1-Vim简明教程【CoolShell】【非原创】
    Python2.6-原理之类和oop(下)
    QT1.1-与Opencv的hello world
  • 原文地址:https://www.cnblogs.com/phj981805903/p/3237250.html
Copyright © 2011-2022 走看看