疯狂
STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
android I/o 例子说明
Posted on 2009-11-08 13:43
疯狂
阅读(1562)
评论(4)
编辑
收藏
所属分类:
android
android里面读取文件地方法基本和java中一样,使用流来读取,只是文件的存放有些规定而已。
android程序是有文件目录为:/data/data/<包名>/files/ 例如:final String filename = "data/data/com.iotest/iotest.txt";
如果有定义错误就会出现错误。
下面是一个简单的例子说明:
首先是我们的layout:
main.xml:
<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
<
LinearLayout xmlns:android
=
"
http://schemas.android.com/apk/res/android
"
android:orientation
=
"
vertical
"
android:layout_width
=
"
fill_parent
"
android:layout_height
=
"
fill_parent
"
>
<
Button android:text
=
"
write text
"
android:id
=
"
@+id/write
"
android:layout_width
=
"
fill_parent
"
android:layout_height
=
"
wrap_content
"
>
</
Button
>
<
Button android:text
=
"
read text
"
android:id
=
"
@+id/read
"
android:layout_width
=
"
fill_parent
"
android:layout_height
=
"
wrap_content
"
>
</
Button
>
<
EditText android:text
=
"
text to insert into file
..
"
android:id
=
"
@+id/EditText01
"
android:layout_width
=
"
fill_parent
"
android:layout_height
=
"
fill_parent
"
>
</
EditText
>
</
LinearLayout
>
最后生成的界面为如下:
然后使我们的activity:
package
com.iotest;
import
java.io.BufferedInputStream;
import
java.io.BufferedOutputStream;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
org.apache.http.util.EncodingUtils;
import
android.app.Activity;
import
android.os.Bundle;
import
android.util.Log;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
public
class
IoTest
extends
Activity
implements
OnClickListener
{
/** */
/**
Called when the activity is first created.
*/
final
String filename
=
"
data/data/com.iotest/iotest.txt
"
;
final
String tag
=
"
I/O
"
;
EditText editText;
Button buttonw;
Button buttonr;
@Override
public
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText
=
(EditText)findViewById(R.id.EditText01);
buttonr
=
(Button)findViewById(R.id.read);
buttonw
=
(Button)findViewById(R.id.write);
buttonr.setOnClickListener(
this
);
buttonw.setOnClickListener(
this
);
}
public
void
onClick(View v)
{
switch
(v.getId())
{
case
R.id.read:
readTest();
break
;
case
R.id.write:
writeTest();
default
:
break
;
}
}
public
void
writeTest()
{
try
{
File file
=
new
File(filename);
file.createNewFile();
Log.d(tag,
"
create flie!
"
);
BufferedOutputStream bufferedOutputStream
=
new
BufferedOutputStream(
new
FileOutputStream(file));
bufferedOutputStream.write(editText.getText().toString().getBytes());
bufferedOutputStream.close();
}
catch
(Exception e)
{
Log.e(tag,
"
error in write
"
);
}
}
public
void
readTest()
{
try
{
File file
=
new
File(filename);
BufferedInputStream bufferedInputStream
=
new
BufferedInputStream(
new
FileInputStream(file));
byte
[] data
=
new
byte
[(
int
) file.length()];
bufferedInputStream.read(data);
String str
=
EncodingUtils.getString(data,
"
utf-8
"
);
bufferedInputStream.close();
editText.setText(
"
读取到的数据:
"
+
str);
}
catch
(Exception e)
{
//
TODO Auto-generated catch block
Log.e(tag,
"
error in read
"
);
}
}
}
也就是要注意下文件的路径。
评论
#
re: android I/o 例子说明[未登录]
回复
更多评论
2010-07-28 16:40 by
lu
我想问一下,你的这个例子自己能运行出来吗?我的为什么运行出现错误呢?
#
re: android I/o 例子说明
回复
更多评论
2010-07-29 09:04 by
@joe
当然能运行起来,所有的例子都是先运行起来,然后才写的,不过这都是09年的写的文章,现在已经没心事继续研究android了,能什么时候看见android的光明未来时再继续研究。
#
re: android I/o 例子说明
回复
更多评论
2010-07-29 14:48 by
luper
谢谢你啦,我运行成功了,不过在途中出现了一点点的错误,这个例子可以用来说明android datastorage 的文件存储的方式吗?
#
re: android I/o 例子说明
回复
更多评论
2010-07-30 09:14 by
@joe
可以这么说但不排除其他方法,请继续努力!
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
android 学习之安装
android Tabhost部件
android 之list
android 多语言
android学习之 intent 实例
android I/o 例子说明
android LogCat使用
android 学习之listview
anadroid学习(两个activety的转换)
android学习(各种提示框)
Powered by:
BlogJava
Copyright © 疯狂
日历
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
公告
公众号:
QQjava交流群:
51374316
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
all 生活杂谈(16)
android(18)
apache项目(20)
chart(1)
concurrent(5)
database(70)
dwr(3)
flex(6)
hibernate(25)
java (135)
javafx(2)
javascript
java安全(8)
java性能(19)
jbpm(1)
jquery(4)
linux(17)
lucene(1)
netty(3)
nginx(1)
others(2)
questions(31)
questions_hander(28)
spring(32)
struts(9)
swing
UML(2)
unix(13)
web(45)
webservice(9)
xml(5)
敏捷(6)
方法论(28)
架构(21)
测试(1)
缓存
网络通讯(9)
读代码(6)
项目管理(19)
相册
我的相册
搜索
积分与排名
积分 - 2836057
排名 - 2
最新随笔
1. 后续内容请移步公众号“duomi88”
2. Netty百万级推送服务(转)
3. Netty 概述(转)
4. Netty优雅退出机制和原理(转)
5. 使用JavaMail SearchTerm 收取邮件
6. JAVA Thread Dump 分析综述
7. oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题
8. FTP主动模式和被动模式的比较(转载)
9. 关于java RMI在多网卡下(或者启动360,百度,腾讯等wifi共享下)无法连接问题(java.rmi.ConnectException: Connection refused to host: xx)
10. (转)Oracle数据库如何授权收费(Database Licensing)
11. 成功的 Web 应用系统性能测试 (转载)
12. It is indirectly referenced from required .class file异常
13. (转)svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
14. automation服务器不能创建对象 解决办法
15. ERROR: transport error 202: gethostbyname: unknown host 解决办法
16. JavaScript 跨浏览器事件处理(转)
17. 函数声明 VS 函数表达式(转)
18. ORA-06548错误
19. 项目规划与管理记录2
20. tmpFile.renameTo(classFile) failed
21. redhat6.4 64位安装rlwrap
22. ora-01031:insufficient privileges
23. mysql远程连接问题 Access denied for user 'root'@' ip ' (using password: YES)
24. dbcp重连(转)
25. 解决Vmware Workstation上安装Linux系统不能SSH远程连接的问题
26. URL最大长度限制(转)
27. 用MyEclipse测试发送email时报java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
28. 我应该采用哪一种 WSDL 样式?(转载)
29. linux 挂载ntfs usb 出现mount: unknown filesystem type 'ntfs'
30. 11g oracle 用户密码过期问题
最新评论
1. re: Oracle物化视图创建全过程(转)
评论内容较长,点击标题查看
--ya
2. re: Oracle物化视图创建全过程(转)
评论内容较长,点击标题查看
--ya
3. re: 11g oracle 用户密码过期问题
问问
--是是是
4. re: mysql远程连接问题 Access denied for user 'root'@' ip ' (using password: YES)
asdfsadf
--asdf
5. re: struts(il8n)实现国际化的一个例子
在啥地方
--正常