gpt4 book ai didi

java - ByteArrayOutputStream 与带有 CharSet 的 CharBuffer

转载 作者:行者123 更新时间:2023-11-30 03:04:34 26 4
gpt4 key购买 nike

我只是想避免一些大型数组副本(byte[] 数组)。

I have a String of size n
I have a byte[] of size m

我使用 ISO-8859-1 作为字符串。我非常想将字符串写入该数组中的 byte[0] 到 byte[n-1] 位置,然后对于 byte[],我将 System.array 将字节复制到数组中。

在查看 ByteArrayOutputStream 时,它是同步的,我不需要,在查看 byteBuffer.asCharBuffer() 时,我似乎无法提供我希望始终显式的 CharSet。

如何实现上述目标?

此外,我刚刚发现 byteBuffer.asCharBuffer 错误地假设每个字符占用两个字节,这对于 ascii 或 ISO-8859-1 来说并非如此,因此 CharBuffer 在这方面效果不佳。

谢谢,院长

最佳答案

编写字符串编码的常用方法是 CharsetEncoder 。我相信它也适合这种情况:

encoder = StandardCharsets.ISO_8859_1.newEncoder();
ByteBuffer result = encoder.encode(CharBuffer.wrap(inputString));
// do whatever you want with result...

关于java - ByteArrayOutputStream 与带有 CharSet 的 CharBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35117558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com