Android如何读写CSV文件方法示例

 更新时间:2017年08月29日 09:45:59   作者:RustFisher  
CSV 文件是Excel 的标准文件格式,在开发过程中经常需要格式化输出数据。CSV 的格式非常简单,都是一行一行存储的,同一行不同列之间用逗号隔开。下面这篇文章主要给大家介绍了关于Android如何读写CSV文件的相关资料,需要的朋友可以参考下。

前言

本文主要给大家介绍的是关于Android读写CSV文件的相关内容,CSV也就是Comma-Separated Values逗号分隔的文本文件,

读写csv文件和读写普通文件类似;写的时候给数据之间添加上逗号。

设定存储路径和文件名:

private static final String FILE_FOLDER =
  Environment.getExternalStorageDirectory().getAbsolutePath()
  + File.separator + "AboutView" + File.separator + "data";
private static final String FILE_CSV = "about_data.csv";

写CSV文件

使用FileOutputStream来向文件尾部添加数据

FileOutputStream.write(byte[] data)向文件流写入字节数据。

class WriteData2CSVThread extends Thread {
  short[] data;
  String fileName;
  String folder;
  StringBuilder sb;
  public WriteData2CSVThread(short[] data, String folder, String fileName) {
   this.data = data;
   this.folder = folder;
   this.fileName = fileName;
  }
  private void createFolder() {
   File fileDir = new File(folder);
   boolean hasDir = fileDir.exists();
   if (!hasDir) {
    fileDir.mkdirs();// 这里创建的是目录
   }
  }
  @Override
  public void run() {
   super.run();
   createFolder();
   File eFile = new File(folder + File.separator + fileName);
   if (!eFile.exists()) {
    try {
     boolean newFile = eFile.createNewFile();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   try {
    FileOutputStream os = new FileOutputStream(eFile, true);
    sb = new StringBuilder();
    for (int i = 0; i < data.length; i++) {
     sb.append(data[i]).append(",");
    }
    sb.append("\n");
    os.write(sb.toString().getBytes());
    os.flush();
    os.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 }

读CSV文件

使用BufferedReader读取每一行内容;读出来的数据带有逗号分隔符

class ReadCSVThread extends Thread {
  String fileName;
  String folder;
  public ReadCSVThread(String folder, String fileName) {
   this.folder = folder;
   this.fileName = fileName;
  }
  @Override
  public void run() {
   super.run();
   File inFile = new File(folder + File.separator + fileName);
   final StringBuilder cSb = new StringBuilder();
   String inString;
   try {
    BufferedReader reader =
     new BufferedReader(new FileReader(inFile));
    while ((inString = reader.readLine()) != null) {
     cSb.append(inString).append("\n");
    }
    reader.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
   runOnUiThread(new Runnable() {
    @Override
    public void run() {
     mCSVTv.setText(cSb.toString());// 显示
    }
   });
  }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Android自定义View仿QQ等级天数进度

    Android自定义View仿QQ等级天数进度

    这篇文章主要为大家详细介绍了Android自定义View仿QQ等级天数进度效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Android Studio 实现文档注释的快捷键

    Android Studio 实现文档注释的快捷键

    这篇文章主要介绍了Android Studio 实现文档注释的快捷键,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Android修改jar文件包名的方法分享

    Android修改jar文件包名的方法分享

    为了防止冲突,修改包名是最直接的途径。下面这篇文章主要介绍了关于Android中修改jar文件包名的方法,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • 详解Android JS相互调用

    详解Android JS相互调用

    这篇文章主要为大家介绍了Android与JS两者之间的相互调用,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Android Adapter适配器使用示例讲解

    Android Adapter适配器使用示例讲解

    这篇文章主要为大家介绍了Android Adapter适配器使用示例讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Android来电监听和去电监听实现代码

    Android来电监听和去电监听实现代码

    本文是关于来点监听和去电监听展开问题,通过实例代码讲解,对android来电监听和去电监听的相关知识感兴趣的朋友一起看看吧
    2017-06-06
  • Android实现支付宝6位密码输入界面

    Android实现支付宝6位密码输入界面

    这篇文章主要为大家详细介绍了Android实现支付宝6位密码输入界面的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android利用Badge组件实现未读消息小红点

    Android利用Badge组件实现未读消息小红点

    在 App 的运营中,活跃度是一个重要的指标,日活/月活……为了提高活跃度,就发明了小红点。这一篇,来介绍一个徽标(Badge)组件,能够快速搞定应用内的小红点,希望对大家有所帮助
    2023-01-01
  • 一篇文章弄懂Android自定义viewgroup的相关难点

    一篇文章弄懂Android自定义viewgroup的相关难点

    这篇文章主要给大家介绍了关于如何通过一篇文章弄懂Android中自定义viewgroup的一些相关难点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • 浅析安卓(Android)的性能优化

    浅析安卓(Android)的性能优化

    性能优化是一个大的范畴,如果有人问你在Android中如何做性能优化的,也许都不知道从哪开始说起。那么这篇文章我们从布局优化和内存优化两个方面来展开说如何进行Android的性能优化。
    2016-08-08

最新评论