`
bell0901
  • 浏览: 28595 次
社区版块
存档分类
最新评论

Android文字图片写入CSV(Base64)并分享

阅读更多

  做的一个分享的功能,将文字图片以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")  可以选择支持这种格式的应用打开分享

 

0
0
分享到:
评论
1 楼 zhangming1982 2015-06-09  
不错。http://www.see-source.com/index.html

相关推荐

    Android.Base64对图片进行编码和解码

    - **存储**:将图片编码为Base64字符串后,可以存入数据库或写入文件,简化了数据处理流程。 - **配置文件**:在XML或JSON配置文件中,可以用Base64编码表示小图标或简短的图片。 ### 6. 注意事项 - **性能**:...

    android用base64实现文件与string相互转换

    本篇文章将详细介绍如何在Android中使用Base64来实现文件与String之间的相互转换。 一、Base64编码原理 Base64是一种基于64个字符的编码方法,这些字符包括大小写字母、数字以及"+"和"/",还有一个用于填充的字符"=...

    android录制视频并转为Base64格式

    在Android平台上,录制视频并将其转换为Base64编码是一项常见的任务,特别是在处理与服务器交互的多媒体数据时。Base64是一种将二进制数据转化为可打印字符的编码方式,常用于在网络上传输非ASCII字符的数据。以下是...

    BASE64图片解码_解码_vba图片base64_base64_VBa_图片_

    在Excel中使用VBA(Visual Basic for Applications)解码BASE64编码的图片是一项常见的编程任务,特别是当你需要处理从网络或数据库中获取的BASE64格式的图像数据时。BASE64是一种用于将二进制数据转换为可打印ASCII...

    java 读取写入csv

    ### Java读取与写入CSV文件的详细解析 在日常的软件开发中,处理CSV(Comma Separated Values)文件是一种常见的需求,特别是在数据分析、数据导入导出等场景下。Java作为一种广泛使用的编程语言,提供了多种方式来...

    c++图片与base64互转

    // 读取图片并转换为Base64 std::string imageToBase64(const std::string& imagePath) { cv::Mat img = cv::imread(imagePath); if (img.empty()) { throw std::runtime_error("无法读取图片"); } std::...

    图片流转存Base64编码然后转图片 Spring 框下的

    本篇将详细讲解如何在Spring框架下,将图片流转存为Base64编码,并从Base64编码还原回图片。 首先,我们需要理解什么是图片流和Base64编码。图片流是指图片数据的一种序列化形式,它可以是字节流或字符流,通常用于...

    图片base64字符串转图片工具代码

    在这个"图片Base64字符串转图片工具代码"中,我们讨论的是如何使用Delphi 7这个古老的但功能强大的集成开发环境(IDE)来实现这一功能。 首先,Base64编码是基于64个可打印字符的集合,这些字符包括大小写字母、...

    Android Base64对图片进行编码和解码.zip

    在Android开发中,有时我们需要将图片转换为字符串形式以便在网络上传输或存储在数据库中,这时Base64编码就派上了用场。Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式,它能确保数据在不支持二进制...

    c++图片 base64互转

    这个例子展示了如何使用`Base64Converter`类将一个名为`input.jpg`的图片文件编码为Base64字符串,保存到文本文件`encoded.txt`,然后读取这个文件并解码回图片,最后将解码后的图片保存为`output.jpg`。 总结来说...

    JAVA将图片转换为Base64编码

    在本文中,我们介绍了如何使用Java将图片转换为Base64编码,并将Base64编码字符串解码成图片。使用Base64编码可以将图片数据转换为文本数据,使得数据传输和存储更加安全和可靠。同时,我们也学习了如何使用Apache ...

    java 图片base64 加密解密

    在这个例子中,`images`目录下的`image.jpg`文件被读取,编码为Base64字符串,然后这个字符串再解码回字节数组,并写入到新的文件`decoded_image.jpg`中。 现代Java版本推荐使用Java 8引入的`java.util.Base64`类,...

    UE4C++写入CSV文件.docx

    使用 C++ 语言在 UE4 中写入 CSV 文件是非常简单的,只需要继承 UBlueprintFunctionLibrary,定义相应的函数,并使用 UE4 提供的文件管理类即可实现文件的读写操作。 知识点: 1. UE4 中的文件管理机制 2. UE4 中...

    QT图片BAse64编码与解码

    QT图片Base64编码与解码是C++编程中一种常见的技术,特别是在处理网络传输或者存储图片数据时。Base64是一种将二进制数据转换为可打印ASCII字符的编码方式,它通过特定的算法将每3个字节的数据转换为4个ASCII字符,...

    通过base64上传图片到服务器并读取图片

    在客户端(通常是浏览器或移动应用),首先需要读取图片文件,并将其转化为Base64字符串。这通常通过JavaScript的`FileReader` API来实现。例如,你可以创建一个新的FileReader实例,调用其`readAsDataURL`方法,该...

    图片转BASE64&&BASE64转图片

    在标题“图片转BASE64&&BASE64转图片”中,涉及了两个主要操作:将图片文件转换为Base64编码,以及将Base64编码还原为图片文件。这些操作在Web开发、数据存储、传输等领域中非常常见。 1. **图片转Base64**: 当...

    VC++6.0使用base64编解码转图片

    在本项目"VC++6.0使用base64编解码转图片"中,我们将探讨如何在Visual C++ 6.0环境下实现Base64编码和解码,并将其应用于图片处理。 首先,Base64编码的基本原理是将每3个8位字节(24位)的数据转换为4个6位字节...

    android BASE64的jar包

    在Android开发中,有时我们需要对数据进行编码和解码,其中BASE64是一种常见的编码方式。这个"android BASE64的jar包"提供了一个便捷的工具,帮助开发者处理BASE64编码相关的需求。这里我们将详细讲解BASE64编码、其...

    图片文件与Base64编码字节数组字符串互转

    在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...

    前端图片压缩base64后台还原图片

    前端代码通常涉及用户上传图片、压缩图片并将其转换为base64编码。这里有一个简单的HTML和JavaScript示例: ```html 压缩并上传 const compressBtn = document.getElementById('compressBtn'); const imageInput...

Global site tag (gtag.js) - Google Analytics