From 3e0da58ee6553fc0ed841db4a8800d50bc444517 Mon Sep 17 00:00:00 2001 From: Per Minborg Date: Fri, 13 Sep 2024 14:38:24 +0000 Subject: [PATCH] 8333843: Provide guidelines on MemorySegment to read strings with known lengths Reviewed-by: mcimadamore --- .../share/classes/java/lang/foreign/MemorySegment.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/java.base/share/classes/java/lang/foreign/MemorySegment.java b/src/java.base/share/classes/java/lang/foreign/MemorySegment.java index cb1f3707db6..9fadc2f0f56 100644 --- a/src/java.base/share/classes/java/lang/foreign/MemorySegment.java +++ b/src/java.base/share/classes/java/lang/foreign/MemorySegment.java @@ -1285,6 +1285,14 @@ public sealed interface MemorySegment permits AbstractMemorySegmentImpl { * sequences with this charset's default replacement string. The {@link * java.nio.charset.CharsetDecoder} class should be used when more control * over the decoding process is required. + *

+ * Getting a string from a segment with a known byte offset and + * known byte length can be done like so: + * {@snippet lang=java : + * byte[] bytes = new byte[length]; + * MemorySegment.copy(segment, JAVA_BYTE, offset, bytes, 0, length); + * return new String(bytes, charset); + * } * * @param offset offset in bytes (relative to this segment address) at which this * access operation will occur