博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 读取SD卡文件
阅读量:6681 次
发布时间:2019-06-25

本文共 3102 字,大约阅读时间需要 10 分钟。

public class SDCardTest extends Activity{    final String FILE_NAME = "/crazyit.bin";    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        // 获取两个按钮        Button read = (Button) findViewById(R.id.read);        Button write = (Button) findViewById(R.id.write);        // 获取两个文本框        final EditText edit1 = (EditText) findViewById(R.id.edit1);        final EditText edit2 = (EditText) findViewById(R.id.edit2);        // 为write按钮绑定事件监听器        write.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View source)            {                // 将edit1中的内容写入文件中                write(edit1.getText().toString());                edit1.setText("");            }        });        read.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View v)            {                // 读取指定文件中的内容,并显示出来                edit2.setText(read());            }        });    }    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);                }                // 关闭资源                br.close();                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());                // 关闭RandomAccessFile                                raf.close();            }        }        catch (Exception e)        {            e.printStackTrace();        }    }}

 

转载于:https://www.cnblogs.com/songyao/p/4081530.html

你可能感兴趣的文章
Vyos防火墙功能配置
查看>>
Redhat内核编译
查看>>
Hyper-V 2016 系列教程4 Hyper-V 虚拟机的新建
查看>>
Flask开发
查看>>
trickle 限制用户空间带宽
查看>>
SQL事务
查看>>
GRE配置案例实现远程网络通信
查看>>
不用linux作为桌面的N个理由
查看>>
Rabbitmq学习之路3-cluster
查看>>
iptables实现NAT(网络搜索整理)
查看>>
关于ip地址
查看>>
ASP.NET自定义404和500错误页面
查看>>
OpenGL学习(七)纹理映射
查看>>
一些必不可少的Sublime Text 2插件
查看>>
测试项目
查看>>
第一章ASP.NET SignalR简介
查看>>
SSH
查看>>
41-50(UIApplication和delegate,UIApplicationMain,UIWindow,程序启动的完整过程,控制器view的延迟加载)...
查看>>
HTTP服务器实现
查看>>
2017.03
查看>>