`

File与byte[],Object互转

 
阅读更多
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

import org.jfree.util.Log;

/**
 * Object 对象必须是可序列化对象 。 可序列化的 Object 对象都可以转换为一个磁盘文件;反过来则不一定成立,只有序列化文件才可以转换为
 * Object 对象。
 * 
 * @author fdc
 * 
 */
public class FileByteConvert {

	public static byte[] fileToByteConvert(File imgFile) {

		FileInputStream fis = null;
		byte[] pData = new byte[(int) imgFile.length()];

		try {
			fis = new FileInputStream(imgFile);
			fis.read(pData);
		} catch (FileNotFoundException e) {
			Log.info("文件没找到!" + e.getMessage());
		} catch (IOException e) {
			Log.info("读取文件出错!" + e.getMessage());
		} finally {
			if (fis != null) {
				try {
					fis.close();
				} catch (IOException e) {
					Log.info("关闭文件输入流出错!" + e.getMessage());
				}
			}
		}

		return pData;
	}

	public static File byteToFileConvert(byte[] byteArr, String outputFile) {
		BufferedOutputStream stream = null;
		File file = null;

		try {
			file = new File(outputFile);
			FileOutputStream fstream = new FileOutputStream(file);
			stream = new BufferedOutputStream(fstream);
			stream.write(byteArr);
		} catch (Exception e) {
			Log.info("输出文件出错!" + e.getMessage());
		} finally {
			if (stream != null) {
				try {
					stream.close();
				} catch (IOException e) {
					Log.info("关闭文件输出流出错!" + e.getMessage());
				}
			}
		}

		return file;
	}

	public static Object byteToObjectConvert(byte[] objBytes) throws Exception {

		if (objBytes == null || objBytes.length == 0) {
			return null;
		}

		ByteArrayInputStream bi = new ByteArrayInputStream(objBytes);
		ObjectInputStream oi = new ObjectInputStream(bi);

		return oi.readObject();
	}

	public static byte[] objectToBytesConvert(Serializable obj) throws Exception {

		if (obj == null) {
			return null;
		}

		ByteArrayOutputStream bo = new ByteArrayOutputStream();
		ObjectOutputStream oo = new ObjectOutputStream(bo);
		oo.writeObject(obj);

		return bo.toByteArray();
	}
}
分享到:
评论

相关推荐

    image与字节数组byte的互转

    以上就是关于在Java、Python和C#中实现图像与字节数组互转的方法。在实际应用中,确保正确处理异常和资源管理是非常重要的。此外,选择正确的图像格式(如JPEG、PNG等)会影响转换后的文件大小和质量。在处理大量...

    C# 图片转成byte存入,数据库读取byte转成图片的类

    在数据库中存储byte数组通常使用BLOB(Binary Large Object)类型字段。这里以SQL Server为例,你可以创建一个包含图片字段的表,并使用ADO.NET的`SqlCommand`执行SQL语句进行插入操作: ```csharp using System...

    java对象转成byte数组的3种方法

    然后,我们可以 new 出一个 UgvData 对象,调用其 toByteArray 方法,即可将这个对象转成 byte 数组。 方法 2:使用 JSON 我们都知道,字符串是可以转换为 byte 数组的。将一个对象转换为 JSON 字符串也很容易,...

    mysql blob to 向 file转换

    在 MySQL 数据库中,BLOB(Binary Large OBject)是一种二进制大对象类型,常用于存储图像、音频、视频和其他类型的文件。然而,在实际应用中,我们经常需要将 BLOB 数据转换为文件,以便在客户端上进行处理和显示。...

    Unity3D教程:用ScriptableObject打包数据2

    public byte[] content; } ``` 在这个类中,我们定义了两个字段:`fileName`用于存储CSV文件的名称,`content`用于存储CSV内容的字节数组。 接下来,我们需要编写打包函数,将CSV数据转换为ScriptableObject并...

    C#中图片.BYTE[]和base64string的转换方法

    在数据库开发中,存储图像数据时通常有两种方式:CLOB(Character Large Object)用于存储Base64编码的字符串,而BLOB(Binary Large Object)则用于存储原始的字节数据。尽管Base64编码可以使文本数据更容易处理,...

    Java 类型相互转换byte[]类型,Blob类型详细介绍

    在Java编程中,数据存储和传输常常涉及到不同类型的数据转换,特别是在数据库操作中,与二进制大数据相关的类型如`byte[]`(字节数组)和`Blob`(Binary Large Object)之间的转换尤为常见。本篇文章将详细讲解如何...

    File工具类

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们可以使用`org.json`库或者Google的Gson库来解析和生成JSON。例如,使用Gson库: ```...

    C#文件2进制流转换

    byte[] fileBytes = File.ReadAllBytes("path_to_your_file"); ``` 二、二进制流到文件转换 1. 使用`FileStream`类:有了二进制数据(如`byte[]`数组),我们可以创建一个新的`FileStream`对象,将这些数据写入到...

    自己写的DES加密解密 ASP.NET(C#)

    { private static byte[] Key64 = { 42, 16, 93, 156, 78, 4, 218, 32 }; private static byte[] IV64 = { 55, 103, 246, 79, 36, 99, 167, 3 }; protected void Page_Load(object sender, EventArgs e) { } ...

    C#实现把图片转换成二进制以及把二进制转换成图片的方法示例

    private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte[] imgBytesIn = SaveImage(path); ShowImgByByte(imgBytesIn); //Parameters.Add(@Photo, SqlDbType.Binary...

    pb_byte.rar_PowerBuilder_pb_pb二进制

    在PowerBuilder中,二进制数据通常存储在Blob(Binary Large Object)类型的字段里。Blob字段可以容纳大量非结构化的数据,如图像、文档或任何其他类型的二进制数据。当我们需要从文件系统读取二进制文件并将其存储...

    Quartus II工程文件的后缀含义.docx

    25. Jam Byte Code File (.jbc):卡纸字节代码文件,用于存储和交换卡纸字节代码数据。 26. Jam File (.jam):卡纸文件,用于描述数字电路的卡纸结构。 27. JTAG Indirect Configuration File (.jic):JTAG 间接...

    xml 转 jsonObject

    XML(Extensible Markup Language)和JSON(JavaScript ...这个过程涉及到XML和JSON的互转、文件I/O以及压缩文件的处理,这些都是Java开发中常见的技能。理解并熟练掌握这些将有助于你处理各种数据交换和文件处理任务。

    文件加密解密算法(Java源码)

    byte[] rawKeyData = Util.readFile(keyfile); // 从原始密钥数据创建DESKeySpec对象 Class classkeyspec=Class.forName(Util.getValue("keyspec")); Constructor constructor = classkeyspec.getConstructor(new...

    C#,BLOB读取操作

    C# 中的 BLOB(Binary Large OBject)读取操作是指从数据库中读取二进制数据的过程。BLOB 是一种二进制数据类型,用于存储大规模的二进制数据,如图片、音频、视频等。在 C# 中,我们可以使用 FileStream 对象来读取...

    将音频文件转二进制分包存储到Redis.docx

    byte[] buffer = new byte[(int) (file.length() * 1)]; inputFile.read(buffer); inputFile.close(); ``` 接下来,我们需要将音频数据分包。这里可以设定一个固定大小(如180字节),然后用循环将`byte[]`数组分割...

    Silverlight将图片转换为byte的实现代码

    在本文中,我们将深入探讨如何在Silverlight中将图片转换为byte数组,这对于在客户端与服务器之间传输图像数据至关重要。Silverlight是一种强大的富客户端技术,它允许开发人员创建丰富的交互式用户界面,但其与...

    C#中二进制数组转换,二进制序列化和json序列化方法

    MyClass newObj = JsonConvert.DeserializeObject(json); // 反序列化 ``` JSON序列化的优势在于其可读性,并且许多现代Web服务都支持JSON格式。然而,二进制序列化通常更节省空间和时间,但不那么直观。 总结,...

Global site tag (gtag.js) - Google Analytics