温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中如何读写文件

发布时间:2021-07-20 14:50:30 来源:亿速云 阅读:153 作者:Leah 栏目:移动开发

这篇文章将为大家详细讲解有关Android中如何读写文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

文件存放位置

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

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

Android中得到输入输出流

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

public FileInputStream   openFileInput  (String name)  public FileOutputStream   openFileOutput  (String name, int mode)

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

◆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处通过如下方式创建:

MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE

对于Java SE部分的补充

FileOutputStream:

public void write(byte[] b) throws IOException 该方法可将指定的字节数组写入文件输出流

FileInputStream:

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

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

Java代码

<span style="white-space: pre;">    </span>/**             * 写入数据             * @param fs             * @param content             */             public void fileWrite(FileOutputStream fos,String content){                       byte[] contentcontentByteArray = 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 数组输出流。

关于Android中如何读写文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI