Android如何读写CSV文件方法示例
时间:2019-03-31
本文章向大家介绍Android如何读写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());// 显示 } }); } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 二十年前做科研你只需要检测一些基因在一些癌症细胞系表达量情况即可
- [剑指Offfer]面试题22: 链表中倒数第k个节点
- Django开发快速入门
- 三阴性乳腺癌表达数据分析笔记之PAM50
- Celery入门
- TO-do api
- 炫酷,Spring Boot + ECharts 实现用户访问地图可视化(附源码)
- 互联网大厂常考算法及套路深度解析
- 2020--Python语法常考知识点
- 为什么你画的Seurat包PCA图与别人的方向不一致?
- 用Python程序模拟300位观众,为5位嘉宾随机投票,最后按照降序排列结果
- Python知识点
- 上盘硬菜,@Transaction源码深度解析 | Spring系列第48篇
- Python--网络编程和并发
- HashMap常见问题(更新中)