我有一个文本文件,该文件在映射文件中的第9到24位有16个ASCII字符。
我正在尝试将文本检索到String变量中。
我尝试过:
// MAPPED FILE DATA
private RandomAccessFile file;
private static int fileSize = Integer.MAX_VALUE;
MappedByteBuffer fileBuffer;
// OPEN MAPPED MEMORY FILE
file = new RandomAccessFile("myfile.txt", "rw");
// ASSIGN BUFFER
fileBuffer = file.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, fileSize);
// READ HEADER
byte[] byteExchange = new byte[16];
fileBuffer.position(8);
fileBuffer.get(byteExchange, 0, 16);
System.out.print("### ");
System.out.println(byteExchange);
System.out.println(byteExchange.toString());
System.out.println(byteExchange[0]);
但是我明白了:
### [B@65ab7765
[B@65ab7765
67
我在期待
### CME
CME
67
似乎单个字节已正确检索,但是我无法理解如何将字节数组转换为有效的字符串。
我的目标是要从文件中读取一个字符串变量,该变量最多包含16个字符(在此示例中仅为“ CME”)。
string myString;
myString = whatever(byteExchange);
System.out.println(myString)
Outputs:
CME