FileChannel fc = new FileOutputStream("data2.txt").getChannel(); fc.write(ByteBuffer.wrap("测试字符".getBytes())); fc.close(); //--读文本 fc = new FileInputStream("data2.txt").getChannel(); ByteBuffer buff = ByteBuffer.allocate(1024); fc.read(buff); buff.flip(); //显示乱码,采...
4 ByteBuffer byteBuffer = StrUtil.byteBuffer(str, charset);//字符串转换为byteBuffer 5 最后我们遍历数组,查看结果 注意事项 byte是数字,所以字符串会按照字符集编码进行转换 这个方法便捷的提供了字符串转ByteBuffer
class HeapByteBuffer extends ByteBuffer { //HeapBuffer中底层负责存储数据的数组 final byte[] hb; public ByteBuffer compact() { System.arraycopy(hb, ix(position()), hb, ix(0), remaining()); position(remaining()); limit(capacity()); discardMark(); return this; } public final int remaining...
除了字节比特位运算转换之外,还能够使用Java 的一个类进行基本数据类型的互转: ByteBuffer 例子1:int转字节数组 ByteBuffer byteBuffer = ByteBuffer.allocate(4); // 小端,如果不指定小端,ByteBuffer默认是大端 ByteOrder.BIG_ENDIAN byteBuffer.order(ByteOrder.LITTLE_ENDIAN); byteBuffer.putInt(2020); // 转成...
创建一个ByteBuffer对象:首先,需要创建一个ByteBuffer对象来存储要写入文件的字节数据。可以使用ByteBuffer类的静态方法allocate()来分配一个指定大小的ByteBuffer对象。 向ByteBuffer写入字节数据:使用ByteBuffer的put()方法将字节数据写入到ByteBuffer中。可以使用put()方法的不同重载形式来写入不同类型的数据,如put(byte)、...
ByteBuffer buffer = ByteBuffer.allocateDirect(1024);while (in.getChannel().read(buffer) != -1) { buffer.flip();byte[] bytes = new byte[buffer.remaining()];buffer.get(bytes);// process bytes...buffer.clear();} 最后,可以使用InputStream.toByteArray()方法,该方法会一次性读取...
* SHORT转BYTE数据 * * @param s * @return */ protected byte[] shortToByteArray(short s) { byte[] shortBuf = new byte[2]; for (int i = 0; i < 2; i++) { int offset = (shortBuf.length - 1 - i) * 8; shortBuf[i] = (byte) ((s >>> offset) & 0xff); ...
clear()方法将将位置属性设置为0,将限制属性设置为容量,并清除标记。下面是一个示例代码: ``` buffer.clear(); ``` 在这个例子中,我们清空了ByteBuffer,使其变为可写入状态。 通过以上步骤,您就可以掌握byte转Java ByteBuffer的关键步骤了。请记住每个步骤的顺序和方法的用途,以便正确地转换和操作二进制数据。
toString(conver(byteBuffer))); } //必须调用完后flip()才可以调用此方法 public static byte[] conver(ByteBuffer byteBuffer){ int len = byteBuffer.limit() - byteBuffer.position(); byte[] bytes = new byte[len]; if(byteBuffer.isReadOnly()){ return null; }else { byteBuffer.get(bytes); } ...