android_sdcard读写(二)
接着上篇,继续研究sdcard的神秘之处。上篇代码不变,本篇新增代码都在下面~~~
继续上代码~~
// 写文件
File path = new File("/mnt/sdcard/sxp/android/test");
File file = new File("/mnt/sdcard/sxp/android/test/test.txt");
if (!path.exists()) {
// 路径不存在? Just 创建
path.mkdirs();
}
if (!file.exists()) {
// 文件不存在、 Just创建
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
OutputStreamWriter osw = null;
try {
osw = new OutputStreamWriter(new FileOutputStream(
file));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
osw.write("我叫石鑫鹏~~~");
osw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这段代码是在sdcard上创建一个目录和一个文件,如果这些个目录和文件有的话,当然不需要创建了。
注意,创建目录和创建文件的函数还是很实用的,要记住。向文件中写内容用到一个什么流流流的,写文件经常用到这个妈的~~
在运行之前,先看看讨厌的模拟器上是否有
/mnt/sdcard/sxp/android/test/test.txt
请看图:

睁大你的七斤氪金狗眼,没有/sxp/android/test/test.txt吧~~待我运行一下::::

神了,有这个文件了,刁德一草。。。忘了说了,这个黑黑的界面是啥,是shell登到模拟器上去的,adb shell还有很多东西要研究,挖槽~~
好了,说完写文件,再来看读文件,上代码
很好
// 读文件
if (file.exists()) {
try {
// 读数据
FileInputStream inputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
inputStream.read(buffer);
inputStream.close();
String result = new String(buffer);
tv = (TextView)this.findViewById(R.id.tv);
tv.setText(result);
} catch (Exception e) {
// TODO: handle exception
}
}
很清晰啊,主要注意点是如何将读取的字节数据转换成字符串~~

很好,读文件还算顺利。
时间不早了,先研究到这,sdcard要研究的东西还很多啊,挖槽,我想想,下一步要研究的是:
删除文件?
向文件中追加数据?
删除文件中的数据?
。。。暂时先想这么多吧
android_sdcard读写(二)的更多相关文章
- mobile_轮播图_transform 版本_transform 读写二合一
轮播图_transform 版本 关键点: 2D 变换 transform 不会改变 元素 在 文档流 中的位置 定位 position 会改变 元素 在 文档流 中的位置 语句解析太快,使用 set ...
- zedboard如何从PL端控制DDR读写(二)——AXI总线
虽然Xilinx已经将和AXI时序有关的细节都封装起来,给出了官方IP和向导生成自定义IP,用户只需要关注自己的逻辑实现,但是还是有必要简单了解一下AXI的时序,毕竟咱是做硬件设计的. AXI(Ad ...
- android_sdcard读写(三)
这次来个稍微复杂点的. package cn.com.sxp;import android.app.Activity;import android.app.ProgressDialog;import ...
- android_sdcard读写(一)
现在的android手机其实就是一个小小的掌上电脑,平时电脑有的硬件它估计也有了.这次本人研究下了其中充当手机硬盘的角色,就是sdcard.这是一个保存应用程序的好地方. 老规矩,上代码,学习代码才是 ...
- HBASE的读写以及client API
一:读写思想 1.系统表 hbase:namespace 存储hbase中所有的namespace的信息 hbase:meta rowkey:hbase中所有表的region的名称 column:re ...
- 073 HBASE的读写以及client API
一:读写思想 1.系统表 hbase:namespace 存储hbase中所有的namespace的信息 hbase:meta rowkey:hbase中所有表的region的名称 column:re ...
- 【CentOS】Linux日常管理
/////////////////////////目录///////////////////////////////////////// 一.日常监控指标相关 1.监控系统状态命令 2.查看系统进程 ...
- python之协程与IO操作
协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B ...
- socket阻塞与非阻塞,同步与异步、I/O模型,select与poll、epoll比较
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就 ...
随机推荐
- Win10《芒果TV》商店版2016-2017春节大礼,每日前100名用户免费领取7天VIP
告别2016,喜迎2017,鸡年大吉,春节期间,每天登录Win10<芒果TV>商店版的前100位用户可领取一张芒果TV会员7天体验卡,先到先得. 芒果TV会员权益: 1.全站免广告 2.自 ...
- 零元学Expression Blend 4 - Chapter 26 教你如何使用RaidoButton以及布局容器的活用
原文:零元学Expression Blend 4 - Chapter 26 教你如何使用RaidoButton以及布局容器的活用 本章将教大家如何运用Blend的内建元件RaidoButton做出选单 ...
- Android零基础入门第87节:Fragment添加、删除、替换
前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加.删除.替换. 一.概述 在前面的学习中,特别是动态加 ...
- .NET Core2.1项目在Linux上使用验证码报Unable to load shared library 'gdiplus' or one of its dependencies
-- ::, 线程ID:[] 日志级别:ERROR 出错类:WebApp.HttpGlobalExceptionFilter property:[(null)] - 错误描述:System.TypeI ...
- 80%的岗位是没有太多能力上的要求的(少部分聪明的人开始觉醒,这部分一定是那些主动追求、主动学习的人;30岁现象能区分真正专业和不学无术的人)good
不要沦陷程序员的30岁问题 热门> 就是学习能力和工作热情态度的问题. 我之前也跟作者一样思考过这个问题,答案是否定的. 在知识积累的行业,年纪越大,越吃香,比如金融,医学,IT.就怕3 ...
- c# 将字符串转换为指定类型的值
private object GetValueByProperty(string key, string value, ref Type typeValue) { Type t = typeof(T) ...
- Hadoop集群(第4期)VSFTP安装配置
1.VSFTP简介 VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 安全性是编写VSF ...
- 627.Swap Salary-(LeetCode之Database篇)
问题描述 给出下面的表,名为salary. id name sex salary 1 A m 2500 2 B f 1500 3 C m 5500 4 D f 500 要求执行一个UPDATE语句,将 ...
- appium入门篇之desired capabilities(2)
目录 1.appium工作原理 desired capabilities 2.准备工作 3.第一个appium脚本 获取包名和启动的activity 编写脚本 运行结果 1.appium工作原理 启动 ...
- php5.3之命名空间
在php5.3之后,php像c++那样新 命名空间. 1.在同一个文件中不能实例化同一个名字相同的类和同时包含两个不同目录下的相同文件,中包含相同的函数和常量.为了解决这个问题,因此引入了命名空间. ...