文件和base64流的相互转换

import java.io.FileInputStream;

import java.io.FileOutputStream;

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

/**

* 文件与base64的互相转换操作

*/

public class testFile {

public static void main(String[] args) {

testFile t = new testFile();

try {

String ret = t.encodeBase64File("d://IE和火狐js或css差异.docx");

System.err.println(ret);

t.decoderBase64File(ret, "d://ghsTest/retFile.docx", "d://ghsTest/");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 将文件转成base64 字符串

*

* @param path文件路径

* @return *

* @throws Exception

*/

public static String encodeBase64File(String path) throws Exception {

File file = new File(path);

FileInputStream inputFile = new FileInputStream(file);

byte[] buffer = new byte[(int) file.length()];

inputFile.read(buffer);

inputFile.close();

return new BASE64Encoder().encode(buffer);

}

/**

* 将base64字符解码保存文件

*

* @param base64Code

* @param targetPath

* @throws Exception

*/

public static void decoderBase64File(String base64Code, String targetPath,String catalogue)

throws Exception {

File file = new File(catalogue);

if(file.exists()==false){

file.mkdirs();

}

byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);

FileOutputStream out = new FileOutputStream(targetPath);

out.write(buffer);

out.close();

}

}

时间: 2024-11-09 03:37:19

文件和base64流的相互转换的相关文章

文件和二进制流的相互转换

/// <summary>        /// 把文件转化为二进制流        /// </summary>        /// <param name="Path"></param>        /// <returns></returns>        public static byte[] ConvertToBinary(string Path)        {            File

java对文件的二进制流base64编码解码

1.java对文件的二进制流base64编码解码 一般保存文件的时候选择的方式是将url存进数据库.今天遇到一个对接传文件流的二进制base64编码,简单记录一下. 依赖于commons-io包和commons-codec包. 编码的方法如下: public static String encodeFile(File file) throws IOException { byte[] readFileToByteArray = FileUtils.readFileToByteArray(file

JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine

JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇幅讲 一.文本复制 读写都说了,我们来看下其他的操作,我们首先来看复制 复制原理:其实就是将C盘下的文件数据存储到D盘的一个文件中 实现的步骤: 1.在D盘创建一个文件,用于存储文件中的数据 2.定义读取流和文件关联 3.通过不断的读写完成数据的存储 关闭资源 package com.lgl.hel

IO流,字节流复制文件,字符流+缓冲复制文件

JAVAIO如果按流向分:输入流和输出流两种 输入流的基类:InputStream   Reader 输出流的基类:OutputStream   Writer 如果按数据单元划分:字节流和字符流 字节流输入输出的基类:InputStream  OutputStream 字符流输入输出的基类:Reader   Writer 字节流复制文件内容 public static void main(String[] args) { //字节流复制文件内容 InputStream io=null; Outp

java中图片文件和base64编码的转换

在线图片转base64编码 import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.URL; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; /** * 下载图片并转换成base6

文件操作IO流

1.读写文件的5个基本步骤   1.1 创建文件流   1.2 创建阅读器或者写入器   1.3 执行读写操作   1.4 关闭阅读器或者写入器   1.5 关闭文件流2.文件操作 File类   2.1 Exists(string path) 检查指定文件是否存在   2.2 Copy(string source,string news) 将指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定文件中新建一个文件   2.3 Delete(sring path) 删除指定的文件

java处理图片base64编码的相互转换

哈喽大家好我是刘德华. 今天项目优化了一下上传头像的功能.采用imagecropper插件完成裁剪图片的效果. 这个插件裁剪完的图片都是base64加密的字符串,上传头像也就涉及到了如何把加密的字符串转换成图片的问题. 以下是代码: /** * @Description: 将base64编码字符串转换为图片 * @Author: * @CreateTime: * @param imgStr base64编码字符串 * @param path 图片路径-具体到文件 * @return */ pub

Windows下基于TCP协议的大文件传输(流形式)

简单实现TCP下的大文件高效传输 在TCP下进行大文件传输,不像小文件那样直接打包个BUFFER发送出去,因为文件比较大可能是1G,2G或更大,第一效率问题,第二TCP粘包问题.针对服务端的设计来说就更需要严紧些.下面介绍简单地实现大文件在TCP的传输应用. 粘包出现原因:在流传输中出现,UDP不会出现粘包,因为它有消息边界(参考Windows 网络编程) 1 发送端需要等缓冲区满才发送出去,造成粘包 2 接收方不及时接收缓冲区的包,造成多个包接收 解决办法: 为了避免粘包现象,可采取以下几种措

Java文件与io——复制文件和转换流

字节流与字符流的区别 在所有的流操作里,字节永远是最基础的.任何基于字节的操作都是正确的.无论是文本文件还是二进制的文件. 如果确认流里面只有可打印的字符,包括英文的和各种国家的文字,也包括中文,那么可以考虑字符流.由于编码不同,多字节的字符可能占用多个字节.比如GBK的汉字就占用2个字节,而UTF-8的汉字就占用3个字节.所以,字符流是根据指定的编码,将1个或多个字节转化为java里面的unicode的字符,然后进行操作.字符操作一般使用Writer,Reader等,字节操作一般都是Input