下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

移动开发:Android开发进阶之如何读写Android文件

作者:javaeye     来源: https://kb.cnblogs.com/page/85920/点击数:1422发布时间: 2021-07-12 17:33:53

标签: android autoandroid版android下载

  Android开发是指android平台上应用的制作,Android早期由"Android之父"之称的AndyRubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。

  Android主要有四大主要组件组成:Activity、ContentProvider、Service、Intent组成。Android文件的运行主要需要读写四大组件的文件。本文将介绍如何读写Android文件,希望对正在进行Android开发的朋友有所帮助。

  文件存放位置

  在Android中文件的I/O是存放在/data/data/<packagename>/file/filename目录下。

  提示:Android是基于linux系统的,在linux的文件系统中不存在类似于Windows的磁盘分区现象,其是以一个正斜杠“/”开头。

  Android中得到输入输出流

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

  1.publicFileOutputStreamopenFileOutput(Stringname,intmode)

  2.publicFileInputStreamopenFileInput(Stringname)

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

  ◆MODE_WORLD_READABLE:只有读权限。

  ◆MODE_WORLD_WRITEABLE:只有写权限。

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

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

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

  MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE

  对于JavaSE部分的补充

  FileOutputStream:

  publicvoidwrite(byte[]b)throwsIOException该方法可将指定的字节数组写入文件输出流

  FileInputStream:

  publicintread(byte[]b)throwsIOException从此输入流中将最多b.length个字节的数据读入一个byte数组中。在某些输入可用之前,此方法将阻塞。

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

  java代码

  1.*读数据

  2.*@paramfis

  3.*@return

  4.*/

  5.publicStringfileRead(FileInputStreamfis){

  6.ByteArrayOutputStreambaos=newByteArrayOutputStream();

  7.byte[]buffer=newbyte[1024];

  8.intlen=-1;

  9.try{

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

  11.baos.write(buffer,0,len);

  12.}

  13.}catch(IOExceptione){

  14.e.printStackTrace();

  15.}

  16.Stringresult=newString(baos.toByteArray());

  17.//System.out.println(result);

  18.try{

  19.baos.close();

  20.fis.close();

  21.}catch(IOExceptione){

  22.e.printStackTrace();

  23.}

  24.returnresult;

  25.}

  ByteArrayOutputStream:此类实现了一个输出流,其中的数据被写入一个byte数组。

  publicvoidwrite(byte[]b,intoff,intlen)将指定byte数组中从偏移量off开始的len个字节写入此byte数组输出流。

  对于输出流直接使用write方法即可,可参考如下代码:

  Java代码

  1.<spanstyle="white-space:pre;"></span>/**

  2.*写入数据

  3.*@paramfs

  4.*@paramcontent

  5.*/

  6.publicvoidfileWrite(FileOutputStreamfos,Stringcontent){

  7.byte[]contentcontentByteArray=content.getBytes();

  8.try{

  9.fos.write(contentByteArray);

  10.}catch(IOExceptione1){

  11.e1.printStackTrace();

  12.}

  13.try{//关闭流

  14.fos.close();

  15.}catch(IOExceptione){

  16.e.printStackTrace();

  17.}

  18.}

  摘要:Android文件的运行主要需要读写四大组件的文件。本文将介绍如何读写Android文件,希望对正在进行Android开发的朋友有所帮助。

  软件开发需要掌握的知识体系有:Unix/Linux平台技术、企业级数据库技术、Java语言核心技术、软件工程和设计模式、Android应用开发基础、互联网核心技术、Android系统级开发、JavaEE核心技术。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程