zoukankan      html  css  js  c++  java
  • Android开发进阶:如何读写Androi“.NET研究”d文件 狼人:

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

      文件存放位置

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

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

      Android中得到输入输出流

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

    1. public FileInputStream openFileInput (String name)
    2. public FileOutputStream openFileOutput (String name, 上海网站建设yle="color: #0000ff;">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代码

    1. <span style="white-space: pre;"> </span>/**
    2. * 写入数据
    3. *
    @param fs
    4. *
    @param content
    5.
    */
    6. public void fileWrite(FileOutputStream fos,String content){
    7. byte[] contentcontentByteArray = content.getBytes();
    8. try {
    9. fos.write(contentByteArray);
    10. } catch (IOException e1) {
    11. e1.printStackTrace();
    12. }
    13. try {//关闭流
    14. fos.close();
    15. } catch (IOException e) {
    16. e.printStackTrace();
    17. }
    18. }

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

      Java代码

    1. * 读数据
    2. * @param fis
    3. * @return
    4上海徐汇企业网站设计与制作>. */
    5. public String fileRead(FileInputStream fis){
    6. ByteArrayOutputStream baos = new ByteArrayOutputStream();
    7. byte[] buffer = new byte[1024];
    8. int len = -1;
    9. try {
    10. while((len=(fis.read(buffer))) != -1){
    11. baos.write(buffer,上海企业网站设计与制作>0,len);
    12. }
    13. } catch (IOException e) {
    14. e.printStackTrace();
    15. }
    16. String result = new String(baos.toByteArray());
    17. //System.out.println(result);
    18. try {
    19. baos.close();
    20. fis.close();
    21. } catch (IOException e) {
    22. e.printStackTrace();
    23. }
    24. return result;
    25. }

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

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

      可参考代码:FileIO 代码下载

    声明:此博有部分内容为转载,版权归原作者所有~
  • 相关阅读:
    为什么说 LINQ 要胜过 SQL
    统一日志系统 Log4Net/ExceptionLess
    使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
    使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)
    安全的API接口解决方案
    任务调度及远端管理(基于Quartz.net)
    关于.NET参数传递方式的思考
    C# Parsing 类实现的 PDF 文件分析器
    .NET的弹性及瞬间错误处理库Polly
    Mybatis官方网站
  • 原文地址:https://www.cnblogs.com/waw/p/2219526.html
Copyright © 2011-2022 走看看