Skip to content

Commit fcb164e

Browse files
ctruedengab1one
authored andcommitted
DataHandle: tweak readString, skip and skipBytes
They can lean on the available(long) method.
1 parent f3f84de commit fcb164e

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/main/java/org/scijava/io/DataHandle.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,9 @@ default String readCString() throws IOException {
233233
}
234234

235235
/** Reads a string of up to length n. */
236-
default String readString(int n) throws IOException {
237-
final long avail = length() - offset();
238-
if (n > avail) n = (int) avail;
239-
final byte[] b = new byte[n];
236+
default String readString(final int n) throws IOException {
237+
final int r = (int) available(n);
238+
final byte[] b = new byte[r];
240239
readFully(b);
241240
return new String(b, getEncoding());
242241
}
@@ -432,11 +431,10 @@ default int read(byte[] b) throws IOException {
432431
* @throws IOException - if an I/O error occurs.
433432
*/
434433
default long skip(final long n) throws IOException {
435-
if (n < 0) return 0;
436-
final long remain = length() - offset();
437-
final long num = n < remain ? n : remain;
438-
seek(offset() + num);
439-
return num;
434+
final long skip = available(n);
435+
if (skip <= 0) return 0;
436+
seek(offset() + skip);
437+
return skip;
440438
}
441439

442440
// -- DataInput methods --
@@ -559,10 +557,10 @@ default String readUTF() throws IOException {
559557

560558
@Override
561559
default int skipBytes(final int n) throws IOException {
562-
final int skipped = (int) Math.min(n, length() - offset());
563-
if (skipped < 0) return 0;
564-
seek(offset() + skipped);
565-
return skipped;
560+
final int skip = (int) Math.min(n, length() - offset());
561+
if (skip < 0) return 0;
562+
seek(offset() + skip);
563+
return skip;
566564
}
567565

568566
// -- DataOutput methods --

0 commit comments

Comments
 (0)