这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
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());// 显示
- }
- });
- }
- }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对PHPERZ的支持。
来源: http://www.phperz.com/article/17/0913/345668.html