基本数据类型及String 与ByteArray的读写交互

摘要:
实现函数:1.将基本数据类型,如int、long、double和String数据写入byte[],2.将byte[]中的数据读取到int、long、double以及String变量packagecom.machuang.io中。其他;importjava.io。缓冲输入流;importjava.io。缓冲输出流;小鬼

实现功能:

1.将基本数据类型,如int, long, double, 及String类型数据写入到 byte[]中,

2.从 byte[]中将数据读取到 int, long, double, 及String类型变量中

package com.machuang.io.others;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public class DataInteractiveWithByteArray {

    public static void main(String[] args) throws IOException {
        
        byte[] recBytes = writeTypesToBytes();
        readTypesFromBytes(recBytes);
    }
    
    public static void readTypesFromBytes(byte[] srcbytes) throws IOException {
        // 关联写出的读取的 byte[]
        DataInputStream dis = new DataInputStream(
                                    new BufferedInputStream( new ByteArrayInputStream(srcbytes) )
                                                                                            );
        // 读取操作
        double recDou = dis.readDouble();
        long recL = dis.readLong();
        String recS = dis.readUTF();
        
        dis.close();
        
        
        System.out.println("recDou:	" + recDou + "
"
                            + "recL:	" + recL + "
"
                            + "recS:	" + recS);
                
    }
    
    public static byte[] writeTypesToBytes() throws IOException {
        // 要写出的数据
        double dataDou = 3.6;
        long numL = 100L;
        String dataStr = "architecture";
        
        
        
        // 关联写出的 ByteArrayOutputStream
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(
                                    new BufferedOutputStream( bos )
                                                                    );
        dos.writeDouble(dataDou);
        dos.writeLong(numL);
        dos.writeUTF(dataStr);        
        dos.flush();
        
        byte[] dataBytes = bos.toByteArray();

        dos.close();    // 关闭流

        return dataBytes;
        
    }

}

运行结果:

基本数据类型及String 与ByteArray的读写交互第1张

免责声明:文章转载自《基本数据类型及String 与ByteArray的读写交互》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇将tomcat添加到开机自动启动服务中【转】百度统计js被劫持用来DDOS Github下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

httpclient个人理解

httpclient:模拟浏览器发送请求,服务器会响应数据,用心区域网内 不同系统间的请求调用 依赖  httpclient.jar和httpcore.jar需要同时纯在 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifac...

JQuery EasyUI datagrid 批量编辑和提交

前台主要代码: <script type="text/javascript"> $(function() { var $dg = $("#dg"); $dg.datagrid({ url : "servlet/list", width : 700,...

C#调用WPS将文档转换成pdf进行预览

vs启动项目可以生成wps实例 本地iis部署的站点却不行 原因是vs是管理员权限,而iis没有权限 解决方法 启动IIS,应用程序池-“选定的应用程序池”-高级设置-进程模型-标识:设置为管理员账号administrator     代码 1.安装WPS 2016 专业版 2.方法一:在项目中引用etapi.dll,wpsapi.dll,wpp...

word的常用操作

using System;using System.Collections.Generic;using System.Text;using Microsoft.Office.Interop.Word;using System.IO;using System.Web;using System.Data;using System.Reflection;usin...

Unity面试题汇总(第一部分)

一、什么是渲染管道? 答:就是告诉GPU一些数据,经过一系列的操作,得到最终要显示的数据。渲染管道中的很多步骤,总的来说是将几何物体从一个坐标系变换到另一个坐标系中去。 主要步骤如下: 本地坐标系 -- 经过世界变换矩阵 --> 世界坐标系 -- 经过视图变换矩阵 --> 视图坐标系 -- 经过投影变换矩阵 --> 投影坐标系 -- 经过...

使用vs自带的性能诊断工具

visual studio是个强大的集成开发环境,内置了程序性能诊断工具。下面通过两段代码进行介绍。 static void Main( string[] args) { Test1(); Test2(); Console.ReadKey();...