Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 570|回复: 0

[实例教程]Android 中的IO文件

[复制链接]

该用户从未签到

发表于 2011-10-22 12:17:26 | 显示全部楼层 |阅读模式
   关于Android中文件的读写,文件存放位置  在Android中文件的I/O是存放在/data/data//file/filename目录下。
  提示:Android是基于linux系统的,在linux的文件系统中不存在类似于Windows的磁盘分区现象,其是以一个正斜杠“/”开头。

  Android中得到输入输出流

  在Android中,对于流的操作十分简单。在Context类中有如下两个方法可以直接得到文件输入输出流:

java代码: public FileInputStream openFileInput (String name)

public FileOutputStream openFileOutput (String name, int mode)

  顾名思义,通过如上方法就可以得到文件输入输出流。对于第二个方法中的mode,有如下四种模式:

Java代码:
Use 0 or MODE_PRIVATE( the default operation)

:用0表示默认值,只能够创建文件的应用程序访问该文件,每次文件写入为覆盖方式。



MODE_APPEND to append to an existing file

: 每次文件写入为追加方式,类似于StringBuffer中的append()方法。



MODE_WORLD_READABLE :只有读权限。



MODE_WORLD_WRITEABLE :只有写权限。
提示:如果想同时得到读与写的权限,则可以在mode处通过如下方式创建:

Java代码:
MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE

//对于SE部分的补充



FileOutputStream:

public void write(byte[] b) throws IOException

//该方法可将指定的字节数组写入文件输出流



FileInputStream:

public int read(byte[] b) throws IOException

//从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。
  对于输出流直接使用write方法即可,可参考如下代码:

Java代码:
/**

* 写入数据

* @param fs

* @param content

*/



public void fileWrite(FileOutputStream fos,String content){

byte[] contentByteArray = content.getBytes();

try {

fos.write(contentByteArray);

} catch (IOException e1) {

e1.printStackTrace();

}

try {//关闭流

fos.close();

} catch (IOException e) {

e.printStackTrace();

}



}

对于输入流,出于性能考虑,可先使用ByteArrayOutputStream,向内存中创建一个字符数组,当将文件读完后,在读入,参考如下代码:

Java代码:
/* 读数据

* @param fis

* @return

*/



public String fileRead(FileInputStream fis){

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = -1;

try {

while((len=(fis.read(buffer))) != -1){

baos.write(buffer,0,len);

}

} catch (IOException e) {

e.printStackTrace();

}

String result = new String(baos.toByteArray());

//System.out.println(result);

try {

baos.close();

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

return result;

}

ByteArrayOutputStream: 此类实现了一个输出流,其中的数据被写入一个 byte 数组。  public void write(byte[] b,int off,int len) 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte 数组输出流。
回复

使用道具 举报

该用户从未签到

发表于 2011-10-22 12:17:31 | 显示全部楼层

Re:[实例教程]Android

学习了……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-12-23 06:00 , Processed in 0.620237 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表