Pergunta

Estou portar algum código java e necessidade de ser capaz de virar (javax.nio.Buffer.flip()).

Eu estou usando byte [] para armazenar dados, e eu quero aleta estas array de bytes, assim como tampão faz isso, como eu acredito embaixo buffer usos classe byte [] também.

Graças

Foi útil?

Solução

ByteBuffer pode usar um byte[] (criar, digamos, ByteBuffer.wrap) ou Java não-memória heap (criado com ByteBuffer.allocateDirect). Você pode obter o byte[] subjacente com ByteBuffer.array. Mas chamar flip e métodos semelhantes em buffers não chnage os dados reais. Em vez deslocamentos associados com os dados forem alterados. Então, o equivalente com byte seria mudar os deslocamentos que seu código está associando com ele.

Outras dicas

Não há equivalente direto do pacote java.nio em .NET. Asynchronous IO é geralmente tratada com Stream.BeginRead / EndRead, mas não é realmente o mesmo modelo. Você poderia nos dizer o que você está tentando fazer?

EDIT: Você já forneceu os detalhes de baixo nível do que você está tentando fazer, mas como não há nenhum equivalente real para as classes nio em .NET, você qualquer Have escrevê-los você mesmo (não impossível, mas uma dor) ou usar um tipo de nível superior diferente. Você pode ser capaz de usar MemoryStream por exemplo - escrita para ele, em seguida, procurar de volta ao começo. Essa é uma pouco como lançar um buffer de byte. No entanto, não podemos dizer se ou não que é apropriado, sem mais informações quanto à meta de nível superior. Pode haver uma maneira muito melhor de fazê-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top