Реализация буфера для байтовых массивов в Java - PullRequest
1 голос
/ 25 декабря 2011

Я пытаюсь реализовать буфер в приложении для Android, чтобы я мог буферизовать входящий поток байтовых массивов из соединения Bluetooth.Мне нужно выполнить некоторую обработку байтовых массивов по мере их получения, и поэтому я хотел бы использовать некоторую буферизацию.

По сути, я хотел бы получить массив байтов, сохранить его в буфере,и затем, когда в буфер поступают следующие байтовые массивы, я вытаскиваю их в том порядке, в котором они пришли, чтобы выполнить мою обработку.Другими словами, мне понадобится реализация first in, first out.

Может ли кто-нибудь указать мне правильное направление относительно того, какой тип буфера мне следует использовать?Я не уверен, есть ли конкретное название для того, что я ищу.Если бы вы могли направить меня к некоторым хорошим ресурсам для реализации буфера, это также было бы очень полезно.

Если что-то из этого неясно, пожалуйста, спросите, и я сделаю все возможное, чтобы уточнить.

Ответы [ 4 ]

1 голос
/ 25 декабря 2011

используйте StringBuilder, добавьте входящие данные в него, вы можете выполнить в нем следующую операцию

1) вставить или добавить строковые данные (или преобразовать их в байт).

2) добавитьв любом конкретном месте.

3) может полностью изменить данные.

4) может получить байт / символ из определенного места.

, дайте мне знать, если возникнут вопросы.Вы также можете использовать Byte Array, ByteBuffer и т. д.

1 голос
/ 25 декабря 2011

Буферизуете ли вы входящие байты или массивы байтов?Если вы буферизируете массивы байтов, вам может потребоваться LinkedBlockingQueue

1 голос
/ 25 декабря 2011

Для FILO вам действительно нужен стек.Посмотрите на java.util.Stack.Вы должны создать его как new Stack<byte[]>().Затем вы можете вставить в него данные и вставить их, когда у вас будет время на обработку.

1 голос
/ 25 декабря 2011

ByteBuffer, вероятно, поможет вам начать.http://developer.android.com/reference/java/nio/ByteBuffer.html

...