# datatools-demo **Repository Path**: xuvw/datatools-demo ## Basic Information - **Project Name**: datatools-demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-20 - **Last Updated**: 2024-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 介绍 基本数据格式转换,string/ArrayBuffer/Uint8Array/base64等 字节流指定进制字符串转化 ### 用法: ```typescript import logger from '@xuvw/klog' import { DataTool } from '@xuvw/datatools' const TAG: string = '[DataTools]'; export function DataToolsDemo() { let str = "hello DataTools!"; //字符串base64编解码 { logger.i(TAG,'-------字符串base64编解码-------'); str = '字符串base64编解码'; let b64Str = DataTool.normalStr2Base64Str(str); let decStr = DataTool.base64Str2NormalStr(b64Str); logger.i(TAG,`str:${str},b64Str:${b64Str}`); } //ArrayBufferbase64编解码 { logger.i(TAG,'-------ArrayBufferbase64编解码-------'); str = 'ArrayBufferbase64编解码'; let arrBuf = DataTool.str2ArrayBuffer(str); let b64Str = DataTool.arrayBuffer2Base64(arrBuf); let decArrBuf = DataTool.base64Str2ArrayBuffer(b64Str); let decStr = DataTool.arrayBuffer2Str(decArrBuf); logger.i(TAG,`str:${str},b64Str:${b64Str}`); } //字节流&二进制字符串互转 { logger.i(TAG,'-------字节流&二进制字符串互转-------'); let bytes: Uint8Array = new Uint8Array([2,2,2]); let binaryStr = DataTool.bytesToBinaryString(bytes); logger.i(TAG,`bytesToBinaryString([2,2,2])=${binaryStr}`); let decBytes = DataTool.binaryStringToByte(binaryStr); if (decBytes == bytes) { logger.i(TAG,'字节流&二进制字符串互转 suc'); } } //字节流&十六进制字符串互转 { logger.i(TAG,'-------字节流&十六进制字符串互转-------'); let bytes: Uint8Array = new Uint8Array([16,16,16]); let hexStr = DataTool.bytesToHexString(bytes); logger.i(TAG,`bytesToHexString([16,16,16])=${hexStr}`); let decBytes = DataTool.hexStringToByte(hexStr); if (decBytes == bytes) { logger.i(TAG,'字节流&十六进制字符串互转 suc'); } } //字节流转任意指定进制(radix)字符串,以转8进制为例说明 { logger.i(TAG,'-------字节流转任意指定进制(radix)字符串,以转8进制为例说明-------'); let bytes: Uint8Array = new Uint8Array([8,8,8]); let octStr = DataTool.bytesToDecimalString(bytes,8,0,''); logger.i(TAG,`bytesToDecimalString([8,8,8],8,0,'')=${octStr}`); } } ``` ### 测试结果 ```log -------字符串base64编解码------- str:字符串base64编解码,b64Str:5a2X56ym5LiyYmFzZTY057yW6Kej56CB -------ArrayBufferbase64编解码------- str:ArrayBufferbase64编解码,b64Str:QXJyYXlCdWZmZXJiYXNlNjTnvJbop6PnoIE= -------字节流&二进制字符串互转------- bytesToBinaryString([2,2,2])=000000100000001000000010 -------字节流&十六进制字符串互转------- bytesToHexString([16,16,16])=101010 -------字节流转任意指定进制(radix)字符串,以转8进制为例说明------- bytesToDecimalString([8,8,8],8,0,'')=101010 ```