做的一个分享的功能,将文字图片以CSV的形式分享到邮件之类的应用。
首先,CSV逗号分隔值文件格式(Comma-Separated Values),纯文本形式,逗号分隔,一行数据不跨行。
图片转换成Base64字符串
public String writeBase64(String path) { //path图片路径 byte[] data = null; try { InputStream in = new FileInputStream(path); data = new byte[in.available()]; in.read(data); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return Base64.encodeToString(data, Base64.NO_WRAP); //注意这里是Base64.NO_WRAP }
最后返回 Base64.encodeToString(data, Base64.NO_WRAP),注意这里要使用Base64.NO_WRAP,而不是Base64.DEFAULT。default当字符串过长(RFC2045里规定了每行最多76个字符换行),自动会加入换行符,影响使用,用NO_WRAP解决。
生成和写入CSV
public File writeCsv() { String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/csv/"; //CSV文件路径 File csv = new File(path + "KnowYourTeam.csv"); File pa = new File(path); if (!pa.exists()) { pa.mkdirs(); } if (!csv.exists()) { try { csv.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } else { try { csv.delete(); //这里写的如果文件存在会删除文件新建一个文件 csv.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { BufferedWriter bw = new BufferedWriter(new FileWriter(csv, true)); ArrayList<Person> list = new PersonDao(this).queryAll(); //数据库取Person List for (Person person : list) { //循环写入person数据(name,title,image) String img = writeBase64(person.getPicPath()); //getPicPath()路径 bw.write(person.getName() + "," + person.getTitle() + "," + img); bw.newLine(); //换行,一行一组数据 } bw.close(); } catch (IOException e) { e.printStackTrace(); } return csv; }
最后分享
File csv = writeCsv(); Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(csv)); sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Shared data"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 sendIntent.putExtra(Intent.EXTRA_TEXT, "There is CSV. " + df.format(new Date())); sendIntent.setType("text/comma-separated-values"); startActivity(Intent.createChooser(sendIntent, "share"));
Intent.ACTION_SEND 带附件发送
Intent.createChooser(sentIntent, "share") 可以选择支持这种格式的应用打开分享
相关推荐
java 读取写入csv
UE4 C++写入CSV文件,当项目有需要把项目的一些数据进行保存时,可以保存成CSV文件,因为CSV文件可以用Excel打开,这样阅读就非常方便
正点原子STM32F103ZE f_write生成并写入CSV文件 FATFS实验
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
使用 python 开发的一个将【批量将xlxs文件中的base64转成png图片】的工具,工具适合所有没有程序基础的人员,直接按照文档执行,就能完成转换!如果有特定的需求,请联系开发人员,对代码进行特定需求开发!
读取本地CSV文件内容,写入内容到本地的CSV文件,包含测试文件
本作品主要是利用Labview将获取的信息存储进CSV格式文件中,CSV格式文件比较通用,方便以后的操作。
主要介绍了Python如何把字典写入到CSV文件的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
labview写入csv文件,可以轻松写入文件,简单易懂
要实现通过Python爬虫获取链家网站的数据并将其写入CSV文件,可以按照以下描述进行操作: 导入所需模块:首先,导入所需的模块,例如requests、BeautifulSoup和csv等。requests模块用于发送HTTP请求获取网页内容,...
java写入excel图片操作 包含需要的类库和相应的代码
codesys通过文件写入功能块是实现对CSV文件数据的写入 a、数组数据处理,将需要的数据转换成CSV需要的字符序列; b、通过SysFileOpen指令打开文件; c、通过SysFileSetPos设置开始写入的位置,一般设置偏移量为0,全...
对CSV文件的读取和写入,简单操作,利用新手阅读和学习
你想读写一个CSV格式的文件。 解决方案 对于大多数的CSV格式的数据读写问题,都可以使用 csv 库。、例如,假设你在一个名叫stocks.csv文件中有一些股票市场数据,就像这样: 下面向你展示如何将这些数据读取为一个...
使用python编写的从图像中取点的程序。本程序设定是取得11行39列的文字坐标,如有其它需求可在本基础上改。通过鼠标左键单击获取文字位置,左键双击完成整个一行的取点。鼠标右击完成整个取点过程。
easy-csv, 用于读取和写入CSV文件的PHP 5.4类的集合 EasyCSVEasyCSV是面向 PHP 5.4 的简单面向对象的CSV操作库 安装通过 Composer 安装:composer require jwage/easy-csv阅读器要读
源代码十一个简单的例子,他吧把dataset中的数据写入到csv文件中,因为只是一个简单的例子,需要自己先建立一个csv文件
Android XML 解析 写入 PULL 方式
java读取写入CSV文件
写入csv文件.cs