我有一个文件通过“ FileChannel.map()”映射到内存中。但是,在读取字符串以执行以下操作时似乎有些奇怪: 通用标签

现在我从C ++的背景知道,内存映射文件是作为指向内存的指针提供给用户的。那么,有没有一种跳过字节数组的好方法,只是让字符串转换直接在映射的内存中进行?

有帮助吗?

解决方案

我建议: 通用标签

也可以通过这种方式使用mapping.asCharBuffer()并获取字符。

其他提示

最后,没有。但是,有一种方法可以以字符形式查看数据。看一下ByteBuffer.asCharBuffer()。

在内部,asCharBuffer()方法执行的功能与您提议的相同,但以逐个字符为基础。

String想要数据的私有副本并没有解决问题。字符串是不可变的,如果使用共享数组,则可能会破坏它。不幸的是,没有String(CharSequence)String(ByteBuffer)构造函数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top