欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-12-10 15:25:22
前言 本文主要给大家介绍的是关于android读写csv文件的相关内容,csv也就是comma-separated values逗号分隔的文本文件, 读写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());// 显示
    }
   });
  }
 }

总结

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