`

ByteBuffer和String的互相转换

 
阅读更多
import java.nio.ByteBuffer;  
import java.nio.CharBuffer;  
import java.nio.charset.Charset;  
import java.nio.charset.CharsetDecoder;  
  
public class TopNTool  
{  
    /** 
     * String 转换 ByteBuffer 
     * @param str 
     * @return 
     */  
    public static ByteBuffer getByteBuffer(String str)  
    {  
        return ByteBuffer.wrap(str.getBytes());  
    }  
  
    /** 
     * ByteBuffer 转换 String 
     * @param buffer 
     * @return 
     */  
    public static String getString(ByteBuffer buffer)  
    {  
        Charset charset = null;  
        CharsetDecoder decoder = null;  
        CharBuffer charBuffer = null;  
        try  
        {  
            charset = Charset.forName("UTF-8");  
            decoder = charset.newDecoder();  
            // charBuffer = decoder.decode(buffer);//用这个的话,只能输出来一次结果,第二次显示为空  
            charBuffer = decoder.decode(buffer.asReadOnlyBuffer());  
            return charBuffer.toString();  
        }  
        catch (Exception ex)  
        {  
            ex.printStackTrace();  
            return "";  
        }  
    }  
}  

 

分享到:
评论
1 楼 yjq8116 2014-12-25  
getString 这个方法你有没有试过,是错误的。这段代码被转了很多次,哎,坑人啊。

相关推荐

    Android byte[] 和 String互相转换

    在Android开发中,数据在内存和磁盘之间传输时,我们经常需要在`byte[]`(字节数组)和`String`之间进行转换。这是因为`byte[]`适合处理二进制数据,如图片、音频文件等,而`String`则更适合存储文本信息。本篇将...

    Android中的ByteBuffer解析

    总的来说,ByteBuffer是Android开发中处理二进制数据的强大工具,熟练掌握其用法和优化策略,可以显著提高应用程序的性能。在处理大量数据交换、网络通信和图像处理等场景时,合理使用ByteBuffer至关重要。

    Java NIO学习笔记——ByteBuffer用法

    本文主要关注的是Java NIO中的ByteBuffer,一个关键的数据容器,用于在通道(Channel)和缓冲区(Buffer)之间传输数据。ByteBuffer的用法是Java NIO学习中的核心内容。 首先,我们了解下ByteBuffer的基本概念。...

    ByteBuffer.zip

    在IT行业中,ByteBuffer是一个非常重要的概念,特别是在网络通信和数据处理领域。ByteBuffer是Java平台提供的一种高效的数据操作接口,它允许我们以字节为单位进行读写操作,这对于处理二进制数据尤其有用。在...

    protobuf+long+bytebuffer

    `ByteBuffer`会根据protobuf编码规则正确地读取和解析数据,包括`long`类型的字段。 在JavaScript中,`protobuf+long+bytebuffer`的组合使用可能涉及到以下步骤: 1. 定义protobuf消息格式(.proto文件)。 2. ...

    java String 与各种进制字符之间的转换

    - `ByteBuffer`类提供了将字节数组与各种类型(包括整数和字符串)之间转换的功能。例如,`ByteBuffer.wrap(byte[])`可以创建一个缓冲区,然后使用`get()`和`put()`方法读写整数。 6. **HickeyTest.java**: 这个...

    Android/Java基于Socket接收结构体数据

    String name = new String(receivedStruct.name.array(), StandardCharsets.UTF_8); ``` 在测试项目中,`TestJavolution`可能包含了一些示例代码,演示如何创建Socket客户端和服务器,以及如何使用Javolution处理...

    NIO(byteBuffer)按行读取文件

    使用nio byteBuffer 实现按行读取文件(大文件) 在window/linux/macOS上均测试通过 对于中文乱码也已处理成功 完整注释,可随需求更改 有问题请邮件:mly610865580@126.com

    深入理解Apache Mina (6)---- Java Nio ByteBuffer与Mina ByteBuffer的区别

    总的来说,Mina ByteBuffer是对Java NIO ByteBuffer的扩展和优化,它更加关注网络通信的性能和效率,提供了更适合网络服务开发的特性和功能。了解它们之间的差异对于高效利用Mina框架进行网络编程至关重要。通过阅读...

    java基本类型与byte数组互相转换.rar

    总结一下,Java中的基本类型与字节数组的转换涉及到一系列的方法和类,包括`ByteBuffer`, `CharsetEncoder`, `DataInputStream`, 和 `DataOutputStream`。理解这些工具的使用方式和注意事项对于处理二进制数据至关...

    【IT十八掌徐培成】Java基础第26天-05.ByteBuffer-mark-pos-limit-cap-flip.zip

    本教程重点讲解了`ByteBuffer`的几个关键属性:mark、position、limit和capacity,以及重要的操作方法如flip。这些概念和方法对于理解和使用Java NIO进行内存数据操作至关重要。 首先,`ByteBuffer`是`Buffer`接口...

    易语言汇编版ByteBuffer源码

    在IT领域,ByteBuffer通常被用作一个高效的缓冲区,它可以存储和操作字节序列,尤其在处理网络通信时,能有效地组织和传输数据。易语言作为中国本土的一种编程语言,以其独特的“中文编程”特性,降低了编程的门槛,...

    Android在JNI中使用ByteBuffer的方法

    在Android开发中,JNI(Java Native Interface)允许Java代码与其他编程语言进行交互,尤其是在需要高效内存操作...理解并熟练运用ByteBuffer的创建、操作和JNI交互机制,对于优化Android系统的低层功能和性能至关重要。

    java基本类型与byte数组互相转换.pdf

    在Java编程语言中,将基本数据类型转换为字节数组以及从字节数组转换回...Java提供了`java.nio.ByteBuffer`类,它支持对字节序列的操作,并能处理大端字节序(Big-Endian)和小端字节序(Little-Endian)之间的转换。

    ByteBuffer.cs

    主要解决从流中获取数据,缓存,拆解,可用于TCP粘包问题

    易语言-易语言汇编版ByteBuffer

    5. **数据转换**:由于网络通信通常涉及字节序问题,ByteBuffer可能包含将数据转换为主机字节序或网络字节序的功能,以适应不同平台之间的通信。 6. **分片与复制**:ByteBuffer可以创建视图(slice),生成一个新...

    ios-byteBuffer:在objective-c中重写一个类

    ios-byteBuffer [![CI状态]( Lee / ios-byteBuffer.svg?style = flat)]( Lee / ios-byteBuffer ) 用法 #分配 ByteBuffer *buffer = [ByteBuffer initWithOrder: ByteOrderLittleEndian]; #输入数据 - ( ...

    dena-bytebuffer:dena-bytebuffer

    `dena-bytebuffer`库就是为了解决这个问题而生,它提供了一个高效的方式来存储和操作二进制数据。本文将详细探讨`dena-bytebuffer`的核心特性、使用方法以及其在实际项目中的应用。 一、`dena-bytebuffer`简介 `...

Global site tag (gtag.js) - Google Analytics