Java examples for java.nio:ByteBuffer
corrupt a list of ByteBuffer
/**// w w w . j a v a2 s.c om * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ //package com.java2s; import java.nio.ByteBuffer; public class Main { public static void corrupt(ByteBuffer[] byteBuffers) { for (int i = 0; i < byteBuffers.length; i++) { int remaining = byteBuffers[i].remaining(); if (remaining >= 1) { ByteBuffer corrupt = byteBuffers[i].duplicate(); int index = corrupt.position() + (int) (Math.random() * remaining); assert index >= corrupt.position() && index < (corrupt.position() + remaining); byte data = (byte) (~corrupt.get(index) & 0xff); corrupt.put(index, data); } } } public static long remaining(ByteBuffer[] bufs) { long byteCount = 0; for (int i = 0; i < bufs.length; i++) { byteCount += bufs[i].remaining(); } return byteCount; } public static ByteBuffer[] duplicate(ByteBuffer[] byteBuffers) { ByteBuffer[] newByteBuffers = new ByteBuffer[byteBuffers.length]; for (int i = 0; i < byteBuffers.length; i++) { newByteBuffers[i] = byteBuffers[i].duplicate(); } return newByteBuffers; } }