diff options
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/io/FileInputStream.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/libjava/java/io/FileInputStream.java b/libjava/java/io/FileInputStream.java index 50abeaa..b49922e 100644 --- a/libjava/java/io/FileInputStream.java +++ b/libjava/java/io/FileInputStream.java @@ -268,11 +268,18 @@ public class FileInputStream extends InputStream * * @exception IOException If an error occurs */ - public long skip(long n) throws IOException + public long skip (long numBytes) throws IOException { - long startPos = fd.getFilePointer(); - long endPos = fd.seek(n, FileDescriptor.CUR, true); - return endPos - startPos; + if (numBytes < 0) + throw new IllegalArgumentException ( "Can't skip negative bytes: " + + numBytes); + + if (numBytes == 0) + return 0; + + long curPos = fd.getFilePointer (); + long newPos = fd.seek (numBytes, FileDescriptor.CUR, true); + return newPos - curPos; } /** |