ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
511
511
EMPFEHLEN
-
Guten abend,
ich möchte einen 0 terminierten String, mit rücksichtname auf das Charset, aus einem
ByteBuffer lesen. Bin ich nun gezwungen String.getBytes(Charset) aufzurufen um die menge
an bytes zu ermitteln, oder ist es hier besser einen anderen Ansatz zu verfolgen?
Desweiteren stellt sich mir die Frage ob es nicht eine Möglichkeit gibt den String zu konstruieren ohne die
gesammte länge des backing arrays anzugeben. Sprich im vorhinein zu überprüfen "dann und dann" kommt die
Nullterminierung.
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
protected final String readS(ByteBuffer readBuf, Charset chSet) throws Exception { if (!readBuf.hasArray()) throw new Exception("readBuf must have a backing array"); byte[] x = readBuf.array(); int xOffset = readBuf.arrayOffset(); int xPosition = readBuf.position(); String res = new String(x, xOffset + xPosition, x.length - (xOffset + xPosition), chSet); res = res.substring(0, res.indexOf('\u0000')); // FIXME: update position of buffer properly, old method is not sufficiently anymore, charsets will be dynamic soon readBuf.position(xPosition + res.length() * 2 + 2); return res; } protected final String readS(ByteBuffer readBuf, Charset chSet, int numBytes) { byte[] x = readX(readBuf, numBytes); return new String(x, chSet).trim(); }
Geändert von FBIagent (22.09.10 um 22:38 Uhr)
Don't blame people for bugs. Work together to make things better. No
finger pointing! Not ever! A good rule is to Never Assume An Attack.
If you find yourself getting angry, assume it's a misunderstanding, not an
attack.
Ähnliche Themen
-
C# equivalent zu Javas ByteBuffer putInt(int)
Von Danny125 im Forum .NET Web und KommunikationAntworten: 1Letzter Beitrag: 04.12.10, 18:37 -
String von hinten lesen VB6
Von jojo4ever im Forum Visual Basic 6.0Antworten: 8Letzter Beitrag: 06.05.08, 14:29 -
string aus Datei lesen
Von LadyMarion im Forum C/C++Antworten: 1Letzter Beitrag: 28.08.07, 13:40 -
aus XML-String lesen
Von Fireball1982 im Forum .NET ArchivAntworten: 1Letzter Beitrag: 30.03.05, 10:53 -
java.nio.channels und Übertragung von ByteBuffer
Von HPB im Forum JavaAntworten: 1Letzter Beitrag: 18.01.05, 15:26





Zitieren
Login





