`

Java使用Base64编码处理图片转String(方便传输)使用

    博客分类:
  • Java
阅读更多
/**
	 * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
	 * @param imgFilePath
	 * @return
	 */
	public static String GetImageStr(String imgFilePath) {
		byte[] data = null;
		// 读取图片字节数组
		try {
			InputStream in = new FileInputStream(imgFilePath);
			data = new byte[in.available()];
			in.read(data);
			in.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

		// 对字节数组Base64编码
		BASE64Encoder encoder = new BASE64Encoder();
		// 返回Base64编码过的字节数组字符串
		return encoder.encode(data);
	}

	/**
	 * 对字节数组字符串进行Base64解码并生成图片
	 * @param imgStr
	 * @param filePath
	 * @param fileName
	 * @return
	 */
	public static boolean GenerateImage(String imgStr, String filePath, String fileName) {
		if (imgStr == null){ // 图像数据为空
			return false;
		}
		BASE64Decoder decoder = new BASE64Decoder();
		try {
			// Base64解码
			byte[] bytes = decoder.decodeBuffer(imgStr);
			for (int i = 0; i < bytes.length; ++i) {
				if (bytes[i] < 0) {// 调整异常数据
					bytes[i] += 256;
				}
			}
			String imgFilePath =  FileUtils.getFilePath(filePath, fileName);
			// 生成图片
			OutputStream out = new FileOutputStream(imgFilePath);
			out.write(bytes);
			out.flush();
			out.close();
			return true;
		} catch (Exception e) {
			return false;
		}
	}


FileUtils.java
     
       /**
	 * 获取文件路径
	 * 
	 * @param dir
	 * @param fileName
	 * @return
	 */
	 public static String getFilePath(String dir, String fileName) {

		String fileSeparator = System.getProperty("file.separator");
		if (!dir.endsWith(fileSeparator)) {
			dir += fileSeparator;
		}
		File file = new File(dir);
		if (!file.isDirectory()) { // 如果文件夹不存在就新建
			file.mkdirs();
		}
		return dir + fileName;

	}
1
5
分享到:
评论
9 楼 yanxiaojia521 2013-09-16  
ives 写道
一看就是小菜鸟啊

是啊是啊。呵呵。
8 楼 yanxiaojia521 2013-09-16  
fanfq 写道
流量问题怎么解决啊?撸主考虑过么??


没,只关心支付业务。
7 楼 ives 2013-09-13  
一看就是小菜鸟啊
6 楼 fanfq 2013-09-13  
流量问题怎么解决啊?撸主考虑过么??
5 楼 yanxiaojia521 2013-09-13  
a3217130 写道
yanxiaojia521 写道
dingran 写道
你的函数首字母为什么大写呢?难道是因为static的吗?

那里的参数?

他指的是你的方法名。


这个不重要。
4 楼 luciferdevil 2013-09-13  
dingran 写道
你的函数首字母为什么大写呢?难道是因为static的吗?

估计是个人命名习惯
3 楼 a3217130 2013-09-13  
yanxiaojia521 写道
dingran 写道
你的函数首字母为什么大写呢?难道是因为static的吗?

那里的参数?

他指的是你的方法名。
2 楼 yanxiaojia521 2013-09-13  
dingran 写道
你的函数首字母为什么大写呢?难道是因为static的吗?

那里的参数?
1 楼 dingran 2013-09-13  
你的函数首字母为什么大写呢?难道是因为static的吗?

相关推荐

    Java Base64编码方法详解及实例分析

    通过本文的学习,你应该能够理解Base64编码的基本概念,以及如何在Java中使用Base64.encodeBase64String方法进行编码操作。 总之,Base64编码是网络传输中常用的数据编码方式,它可以将二进制数据转换成可打印的...

    javabase64-1.3.1

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。... javabase64-1.3.1.rar String encoded = Base64.encode("Hello, world!", "UTF-8"); String decoded = Base64.decode(encoded, "UTF-8");

    Android图片的Base64编码与解码及解码Base64图片方法

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java ...

    java 面试题 总结

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例241 基于Base64编码 304 实例242 基于Base64解码 305 实例243 发送简单的Email 306 实例244 发送带附件的Email 308 实例245 读取XML文件属性 310 第3篇 窗体与控件应用 第11章 窗体设计 314 11.1 设置窗体位置 ...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    java-servlet-api.doc

    Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...

    java经典面试2010集锦100题(不看你后悔)

    JAVA试题(100道) —————————————————————————————————————— 题目1: 下面不属于基本类型的是:c (选择1项) A) boolean B) long C) String D) byte 题目2:d 如下程序中:...

    asp.net知识库

    常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN...

    xml入门教程/xml入门教程

    XML的用途,数据传输的中间件,做为通用文档格式 1,数据交换 2,web服务 3,内容管理 4,web集成 5,充当配置文件 格式良好的XML文件的规范 XML文档是一种严格规范的语言,必须按照规范来写。 XML文档的框架结构...

Global site tag (gtag.js) - Google Analytics