< prev index next >
src/java.base/share/classes/java/nio/Buffer.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -598,10 +598,43 @@
* @since 9
*/
public abstract Buffer slice();
/**
+ * Creates a new buffer whose content is a shared subsequence of
+ * this buffer's content.
+ *
+ * <p> The new buffer will start at position {@code index} in this buffer
+ * and will contain {@code length} elements. Changes to this buffer's
+ * content will be visible in the new buffer, and vice versa; the two
+ * buffers' position, limit, and mark values will be independent.
+ *
+ * <p> The new buffer's position will be zero, its capacity and its limit
+ * will be {@code length}, its mark will be undefined. The new buffer will
+ * be direct if, and only if, this buffer is direct, and it will be
+ * read-only if, and only if, this buffer is read-only. </p>
+ *
+ * @param index
+ * The position in this buffer at which the content of the new
+ * buffer will start; must be non-negative and less than
+ * {@link #limit() limit()}
+ *
+ * @param length
+ * The number of elements the new buffer will contain; must be
+ * non-negative and no larger than {@code limit() - index}
+ *
+ * @return The new buffer
+ *
+ * @throws IndexOutOfBoundsException
+ * If {@code index} is negative or not less than {@code limit()},
+ * {@code length} is negative, or {@code length > limit() - index}
+ *
+ * @since 13
+ */
+ public abstract Buffer slice(int index, int length);
+
+ /**
* Creates a new buffer that shares this buffer's content.
*
* <p> The content of the new buffer will be that of this buffer. Changes
* to this buffer's content will be visible in the new buffer, and vice
* versa; the two buffers' position, limit, and mark values will be
< prev index next >