题
我有一个文件通过“ FileChannel.map()”映射到内存中。但是,在读取字符串以执行以下操作时似乎有些奇怪: 通用标签
现在我从C ++的背景知道,内存映射文件是作为指向内存的指针提供给用户的。那么,有没有一种跳过字节数组的好方法,只是让字符串转换直接在映射的内存中进行?
解决方案
我建议: 通用标签
也可以通过这种方式使用mapping.asCharBuffer()并获取字符。
其他提示
最后,没有。但是,有一种方法可以以字符形式查看数据。看一下ByteBuffer.asCharBuffer()。
在内部,asCharBuffer()方法执行的功能与您提议的相同,但以逐个字符为基础。
String想要数据的私有副本并没有解决问题。字符串是不可变的,如果使用共享数组,则可能会破坏它。不幸的是,没有String(CharSequence)
或String(ByteBuffer)
构造函数。
不隶属于 StackOverflow