Jak wyodrębnić ciąg z ByteBuffer tylko do odczytu? Nie mogę użyć metody ByteBuffer.array(), ponieważ generuje ona wyjątek ReadOnlyException. Czy muszę użyć ByteBuffer.get (arr []) i skopiować go, aby odczytać dane i utworzyć ciąg? Wydaje się marnotrawstwem, że trzeba utworzyć kopię tylko po to, aby ją przeczytać.Wyodrębnij ciąg z ReadOnly java.nio.ByteBuffer
8
A
Odpowiedz
16
Powinieneś być w stanie użyć Charset.decode(ByteBuffer)
, który przekształci ByteBuffer
w CharBuffer
. Następnie po prostu zadzwoń pod numer toString()
. Przykładowy kod:
import java.nio.*;
import java.nio.charset.*;
class Test {
public static void main(String[] args) throws Exception {
byte[] bytes = { 65, 66 }; // "AB" in ASCII
ByteBuffer byteBuffer =
ByteBuffer.wrap(bytes).asReadOnlyBuffer();
CharBuffer charBuffer = StandardCharsets.US_ASCII.decode(byteBuffer);
String text = charBuffer.toString();
System.out.println(text); // AB
}
}
0
Bufor ReadOnly nie daje dostępu do całej tablicy, w przeciwnym razie można go zmienić. Uwaga: Ciąg ma jeszcze jedną kopię jako char []. Jeśli jest to problemem, ponownie rozważę użycie bufora tylko do odczytu.
Powiązane problemy
- 1. Wyodrębnij ciąg znaków w rozmowie Python
- 2. readonly z jquery
- 3. Wyodrębnij plik z ciągu ZIP
- 4. Wyodrębnij emotikony z tekstu
- 5. Wyodrębnij dźwięk z fla
- 6. C++ - wyodrębnij liczby z ciągu znaków
- 7. Kpiny z wirtualnych właściwości readonly z moq
- 8. Wyodrębnij numer z ciągu tekstowego - Excel
- 9. Poprawnie wyodrębnij emotikony z ciągu Unicode
- 10. Wyodrębnij AST z bloku Ruby
- 11. Wyodrębnij standardowe błędy z glm
- 12. Wyodrębnij wszystko z pliku PDF
- 13. Wyodrębnij tekst z pliku PDF
- 14. Wyodrębnij liczby całkowite z zakresów
- 15. Inicjowanie właściwości readonly
- 16. div contentEditable ale Readonly
- 17. JPA readonly mapping
- 18. Mapowanie readonly kolekcji dzieci z AutoMapper
- 19. Otwieranie SQLite3 jako READONLY z PDO?
- 20. atrybutu readonly jQuery problemy
- 21. Wyodrębnij 1 plik z tar.gz z bashem
- 22. Co oznacza ApplicationIntent = ReadOnly w łańcuchu połączenia
- 23. ustawić połączenie serwera sql do readonly?
- 24. CodeMirror: Poszczególne wiersze tylko readonly
- 25. Leniwa własność readonly w swift
- 26. ReadOnly Atrybut w MVC 4
- 27. Jak ChoiceField readonly formularzy django
- 28. Usunąć readonly w Compact Framework
- 29. Wyodrębnij część repozytorium git?
- 30. wyodrębnij tekst z tex, usuń tagi latexowe