今天在对字节流转换为对象时,发现总是会报错,后来查明原因是要将流的Index设置为起始位置,因为序列化后Index移到了
流的末尾,所以才报错了。代码如下:
publicstaticT DeSerializer<T>(byte[]buffer,intlength)
{
try
{
stringmTextReceived = Encoding.UTF8.GetString(buffer,0,length);
SocketDataPack sdp =GetSocketDataPackFromString(mTextReceived);
//MemoryStream对象提供了无需进行IO就可以创建Stream的方法
MemoryStream stream =newMemoryStream();
BinaryFormatter formatter =newBinaryFormatter();
formatter.Serialize(stream,sdp);
//将流的Index设置为开始位置
stream.Position =0;
//确保书写器更新到Stream中;
stream.Flush();
objectobj = formatter.Deserialize(stream);
if(obj ==null)
{
returndefault(T);
}
return(T)obj;
}
catch(Exception ex)
{
throwex;
}
}
分享到:
相关推荐
图片转换成字节流先要转换的IMage对象,转换之后返回字节流。字节流转换成图片,要转换的字节流,转换得到的Image对象,根据图片路径返回图片的字节流,感兴趣的朋友看下下面的代码。 C#将图片和字节流相互转换代码...
如果需要在程序中操作图片,可以使用Java的`javax.imageio`包中的`ImageIO`类将字节流转换为`BufferedImage`对象: ```java BufferedImage image; try (InputStream is = new ByteArrayInputStream(imageData))...
本篇将深入探讨如何使用C#将图片文件转换为字节流,并将其存储在TXT文本文件中。 首先,我们需要理解字节流的概念。字节流是数据在计算机内存或磁盘间传输的基本单元,它可以是输入流(读取数据)或输出流(写入...
序列化是将对象转换为字节流的过程,便于存储或在网络上传输;反序列化则相反,将字节流恢复为原来的对象。使用对象流需要注意的是,只有实现了Serializable接口的类的对象才能被序列化。 总结来说,Java I/O流系统...
要将图片转化为字节流,可以遵循以下步骤: 1. **打开文件**:使用FileInputStream打开图片文件,实例化一个InputStream对象。 2. **读取字节**:调用InputStream的read()方法,将图片文件的每个字节读取到一个字节...
转换流如InputStreamReader和OutputStreamWriter,它们起到了字节流和字符流之间的桥梁作用,可以根据指定的字符编码将字节流转换为字符流,反之亦然。 此外,Java的IO流还提供了一些高级特性,比如**过滤流**。...
它们允许将Java对象转换为字节流,并从字节流中恢复对象。 5. **ZipInputStream** 和 **ZipOutputStream**:用于处理ZIP压缩格式的文件,可以读取和写入多个压缩过的条目。 6. **GZIPInputStream** 和 **...
在Java或.NET等编程语言中,我们可以使用相关的类库来读取图片文件并将其转换为字节流。例如,在Java中,可以使用`java.io.FileInputStream`和`java.nio`包中的`ByteBuffer`来读取图片文件,并将内容转化为字节流。...
ObjectInputStream和ObjectOutputStream是对象流的主要类,它们可以将Java对象转换为字节流并反之。对象必须实现Serializable接口才能被序列化。 4. 序列化(Serialization): 序列化是将对象的状态转换为字节...
C#作为一种强大的.NET编程语言,提供了多种方式来处理不同类型的数据,包括将文件转换为字节流。本篇将深入探讨"文件转字节流"这一核心概念,以及如何在C#中实现这一过程。 字节流(Byte Stream)是计算机科学中的...
- **InputStreamReader/OutputStreamWriter**:在字节流和字符流之间起转换作用,可以指定字符编码,如GBK、UTF-8等。 4. **对象流**: - **ObjectInputStream/ObjectOutputStream**:支持序列化,允许程序将对象...
标题“字节流生成word文档”涉及到的是在Java编程中如何使用字节流技术来创建Microsoft Word(.doc或.docx)文件。字节流是Java IO中的一个重要概念,它用于处理二进制数据,如图像、音频、视频或者如Word文档这样的...
Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 Java 中,对象转化为 byte 数组通常...
File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型字节流、打印流、对象序列化流、字节数组流)、字符流(缓冲字符流、文件字符流、转换流、格式化输出流、字符数组流) 这份代码源码...
首先创建一个`File`对象,然后通过`FileOutputStream`实例化输出流,接着将字符串转换为字节数组并写入文件,最后关闭流。 字符流: 与字节流相对应,字符流由`Reader`和`Writer`类组成。字符流处理的是Unicode字符...
本文将详细介绍如何使用Java中的字节流技术来实现从文件中按字节读取信息,并将其转换为字节数组。 #### Java中的字节流简介 Java提供了一套强大的流处理机制,使得开发者能够方便地进行数据的读写操作。字节流是...
1. **字节流的概念**:字节流是一种数据表示方式,将数据转化为一连串的字节,无论是字符、整数还是对象,都可以被转化为字节流进行传输。字节流分为输入流和输出流,分别用于读取和写入数据。 2. **序列化与反序列...
本篇文章将深入探讨字节流工具的使用方法、InputStream与byte数组之间的转换以及如何将流另存为文件。 1. **字节流概述** - 字节流分为输入流和输出流,分别用于数据的读取和写入。Java中的InputStream和...
如果字节流包含文本信息,可能需要将其转换为字符串。这通常涉及使用`Encoding`类,如`Encoding.UTF8`。 ```csharp string text = Encoding.UTF8.GetString(buffer, 0, bytesRead); // 将字节转换为UTF-8编码的字符...