做的一个分享的功能,将文字图片以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") 可以选择支持这种格式的应用打开分享
相关推荐
- **存储**:将图片编码为Base64字符串后,可以存入数据库或写入文件,简化了数据处理流程。 - **配置文件**:在XML或JSON配置文件中,可以用Base64编码表示小图标或简短的图片。 ### 6. 注意事项 - **性能**:...
本篇文章将详细介绍如何在Android中使用Base64来实现文件与String之间的相互转换。 一、Base64编码原理 Base64是一种基于64个字符的编码方法,这些字符包括大小写字母、数字以及"+"和"/",还有一个用于填充的字符"=...
在Android平台上,录制视频并将其转换为Base64编码是一项常见的任务,特别是在处理与服务器交互的多媒体数据时。Base64是一种将二进制数据转化为可打印字符的编码方式,常用于在网络上传输非ASCII字符的数据。以下是...
在Excel中使用VBA(Visual Basic for Applications)解码BASE64编码的图片是一项常见的编程任务,特别是当你需要处理从网络或数据库中获取的BASE64格式的图像数据时。BASE64是一种用于将二进制数据转换为可打印ASCII...
### Java读取与写入CSV文件的详细解析 在日常的软件开发中,处理CSV(Comma Separated Values)文件是一种常见的需求,特别是在数据分析、数据导入导出等场景下。Java作为一种广泛使用的编程语言,提供了多种方式来...
// 读取图片并转换为Base64 std::string imageToBase64(const std::string& imagePath) { cv::Mat img = cv::imread(imagePath); if (img.empty()) { throw std::runtime_error("无法读取图片"); } std::...
本篇将详细讲解如何在Spring框架下,将图片流转存为Base64编码,并从Base64编码还原回图片。 首先,我们需要理解什么是图片流和Base64编码。图片流是指图片数据的一种序列化形式,它可以是字节流或字符流,通常用于...
在这个"图片Base64字符串转图片工具代码"中,我们讨论的是如何使用Delphi 7这个古老的但功能强大的集成开发环境(IDE)来实现这一功能。 首先,Base64编码是基于64个可打印字符的集合,这些字符包括大小写字母、...
在Android开发中,有时我们需要将图片转换为字符串形式以便在网络上传输或存储在数据库中,这时Base64编码就派上了用场。Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式,它能确保数据在不支持二进制...
这个例子展示了如何使用`Base64Converter`类将一个名为`input.jpg`的图片文件编码为Base64字符串,保存到文本文件`encoded.txt`,然后读取这个文件并解码回图片,最后将解码后的图片保存为`output.jpg`。 总结来说...
在本文中,我们介绍了如何使用Java将图片转换为Base64编码,并将Base64编码字符串解码成图片。使用Base64编码可以将图片数据转换为文本数据,使得数据传输和存储更加安全和可靠。同时,我们也学习了如何使用Apache ...
在这个例子中,`images`目录下的`image.jpg`文件被读取,编码为Base64字符串,然后这个字符串再解码回字节数组,并写入到新的文件`decoded_image.jpg`中。 现代Java版本推荐使用Java 8引入的`java.util.Base64`类,...
使用 C++ 语言在 UE4 中写入 CSV 文件是非常简单的,只需要继承 UBlueprintFunctionLibrary,定义相应的函数,并使用 UE4 提供的文件管理类即可实现文件的读写操作。 知识点: 1. UE4 中的文件管理机制 2. UE4 中...
QT图片Base64编码与解码是C++编程中一种常见的技术,特别是在处理网络传输或者存储图片数据时。Base64是一种将二进制数据转换为可打印ASCII字符的编码方式,它通过特定的算法将每3个字节的数据转换为4个ASCII字符,...
在客户端(通常是浏览器或移动应用),首先需要读取图片文件,并将其转化为Base64字符串。这通常通过JavaScript的`FileReader` API来实现。例如,你可以创建一个新的FileReader实例,调用其`readAsDataURL`方法,该...
在标题“图片转BASE64&&BASE64转图片”中,涉及了两个主要操作:将图片文件转换为Base64编码,以及将Base64编码还原为图片文件。这些操作在Web开发、数据存储、传输等领域中非常常见。 1. **图片转Base64**: 当...
在本项目"VC++6.0使用base64编解码转图片"中,我们将探讨如何在Visual C++ 6.0环境下实现Base64编码和解码,并将其应用于图片处理。 首先,Base64编码的基本原理是将每3个8位字节(24位)的数据转换为4个6位字节...
在Android开发中,有时我们需要对数据进行编码和解码,其中BASE64是一种常见的编码方式。这个"android BASE64的jar包"提供了一个便捷的工具,帮助开发者处理BASE64编码相关的需求。这里我们将详细讲解BASE64编码、其...
在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...
前端代码通常涉及用户上传图片、压缩图片并将其转换为base64编码。这里有一个简单的HTML和JavaScript示例: ```html 压缩并上传 const compressBtn = document.getElementById('compressBtn'); const imageInput...