本文整理了Java中java.io.InputStream.skip()
方法的一些代码示例,展示了InputStream.skip()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。InputStream.skip()
方法的具体详情如下:
包路径:java.io.InputStream
类名称:InputStream
方法名:skip
[英]Skips at most n bytes in this stream. This method does nothing and returns 0 if n is negative, but some subclasses may throw.
Note the "at most" in the description of this method: this method may choose to skip fewer bytes than requested. Callers should always check the return value.
This default implementation reads bytes into a temporary buffer. Concrete subclasses should provide their own implementation.
[中]此流中最多跳过n个字节。此方法不执行任何操作,如果n为负,则返回0,但某些子类可能会抛出。
请注意此方法描述中的“最多”:此方法可能选择跳过的字节数少于请求的字节数。调用方应始终检查返回值。
此默认实现将字节读入临时缓冲区。具体的子类应该提供自己的实现。
代码示例来源:origin: google/guava
/**
* Attempts to skip up to {@code n} bytes from the given input stream, but not more than {@code
* in.available()} bytes. This prevents {@code FileInputStream} from skipping more bytes than
* actually remain in the file, something that it {@linkplain java.io.FileInputStream#skip(long)
* specifies} it can do in its Javadoc despite the fact that it is violating the contract of
* {@code InputStream.skip()}.
*/
private static long skipSafely(InputStream in, long n) throws IOException {
int available = in.available();
return available == 0 ? 0 : in.skip(Math.min(available, n));
}
代码示例来源:origin: Tencent/tinker
public static void skipAll(InputStream in) throws IOException {
do {
in.skip(Long.MAX_VALUE);
} while (in.read() != -1);
}
/**
代码示例来源:origin: wildfly/wildfly
public static int keyPress(String msg) {
System.out.println(msg);
try {
int ret=System.in.read();
System.in.skip(System.in.available());
return ret;
}
catch(IOException e) {
return -1;
}
}
代码示例来源:origin: naman14/Timber
private static int readOgg(byte[] buf, InputStream in, int bytesinpage, int skip) throws IOException {
int toread = skip!=-1?skip:buf.length;
int offset = 0;
while(toread>0){
if(bytesinpage==0){
byte magic[] = new byte[4];
in.read(magic);
if(!Arrays.equals(magic,new byte[]{'O','g','g','S'})){
in.close();
throw new IOException();
}
byte header[] = new byte[23];
in.read(header);
int count = header[22]& 0xFF;
while(count-->0){
bytesinpage += in.read();
}
}
int read = toread;
if(bytesinpage-toread<0)read = bytesinpage;
if(skip != -1)
in.skip(read);
else
in.read(buf, offset, read);
offset += read;
toread -= read;
bytesinpage -= read;
}
return bytesinpage;
}
代码示例来源:origin: apache/avro
/**
* Skips any unread bytes from InputStream and closes it.
*/
static void skipAndCloseQuietly(InputStream stream) {
try {
if (stream instanceof KnownLength && stream.available() > 0) {
stream.skip(stream.available());
} else {
//don't expect this for an inputStream provided by gRPC but just to be on safe side.
byte[] skipBuffer = new byte[4096];
while (true) {
int read = stream.read(skipBuffer);
if (read < skipBuffer.length) {
break;
}
}
}
stream.close();
} catch (Exception e) {
log.log(Level.WARNING, "failed to skip/close the input stream, may cause memory leak", e);
}
}
}
代码示例来源:origin: jMonkeyEngine/jmonkeyengine
public void setTime(float time) {
if (time != 0f) {
throw new UnsupportedOperationException("Seeking WAV files not supported");
}
InputStream newStream = info.openStream();
try {
newStream.skip(resetOffset);
this.in = new BufferedInputStream(newStream);
} catch (IOException ex) {
// Resource could have gotten lost, etc.
try {
newStream.close();
} catch (IOException ex2) {
}
throw new RuntimeException(ex);
}
}
}
代码示例来源:origin: jfinal/jfinal
long end = range[1];
inputStream = new BufferedInputStream(new FileInputStream(file));
if (inputStream.skip(start) != start)
throw new RuntimeException("File skip error");
outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
long position = start;
for (int len; position <= end && (len = inputStream.read(buffer)) != -1;) {
if (position + len <= end) {
outputStream.write(buffer, 0, len);
try {inputStream.close();} catch (IOException e) {LogKit.error(e.getMessage(), e);}
代码示例来源:origin: bumptech/glide
@Override
public long skip(long total) throws IOException {
if (total < 0) {
return 0;
}
long toSkip = total;
while (toSkip > 0) {
long skipped = is.skip(toSkip);
if (skipped > 0) {
toSkip -= skipped;
} else {
// Skip has no specific contract as to what happens when you reach the end of
// the stream. To differentiate between temporarily not having more data and
// having finished the stream, we read a single byte when we fail to skip any
// amount of data.
int testEofByte = is.read();
if (testEofByte == -1) {
break;
} else {
toSkip--;
}
}
}
return total - toSkip;
}
代码示例来源:origin: hierynomus/sshj
private void checkAndFlushProxyResponse()throws IOException {
InputStream socketInput = getInputStream();
byte[] tmpBuffer = new byte[512];
int len = socketInput.read(tmpBuffer, 0, tmpBuffer.length);
if (len == 0) {
throw new SocketException("Empty response from proxy");
}
String proxyResponse = new String(tmpBuffer, 0, len, IOUtils.UTF8);
// Expecting HTTP/1.x 200 OK
if (proxyResponse.contains("200")) {
// Flush any outstanding message in buffer
if (socketInput.available() > 0) {
socketInput.skip(socketInput.available());
}
// Proxy Connect Successful
} else {
throw new SocketException("Fail to create Socket\nResponse was:" + proxyResponse);
}
}
}
代码示例来源:origin: apache/avro
private void validateInputStreamReads(InputStream test, InputStream check)
throws IOException {
byte[] bt = new byte[7];
byte[] bc = new byte[7];
while (true) {
int t = test.read();
int c = check.read();
Assert.assertEquals(c, t);
if (-1 == t) break;
t = test.read(bt);
c = check.read(bc);
Assert.assertEquals(c, t);
Assert.assertArrayEquals(bt, bc);
if (-1 == t) break;
t = test.read(bt, 1, 4);
c = check.read(bc, 1, 4);
Assert.assertEquals(c, t);
Assert.assertArrayEquals(bt, bc);
if (-1 == t) break;
}
Assert.assertEquals(0, test.skip(5));
Assert.assertEquals(0, test.available());
Assert.assertFalse(test.getClass() != ByteArrayInputStream.class && test.markSupported());
test.close();
}
代码示例来源:origin: Tencent/tinker
in.skip(BSUtil.HEADER_SIZE);
DataInputStream ctrlBlockIn = new DataInputStream(new GZIPInputStream(in));
in.skip(ctrlBlockLen + BSUtil.HEADER_SIZE);
InputStream diffBlockIn = new GZIPInputStream(in);
in.skip(diffBlockLen + ctrlBlockLen + BSUtil.HEADER_SIZE);
InputStream extraBlockIn = new GZIPInputStream(in);
diffBlockIn.close();
extraBlockIn.close();
代码示例来源:origin: apache/incubator-dubbo
public static void skipUnusedStream(InputStream is) throws IOException {
if (is.available() > 0) {
is.skip(is.available());
}
}
}
代码示例来源:origin: cmusphinx/sphinx4
try {
InputStream dataStream = new FileInputStream(file);
dataStream.skip(startOffset * bytesPerFrame);
if (dataStream.read(data) != data.length) {
dataStream.close();
throw new CTLException("Unable to read " + data.length + " bytes of utterance " + name);
dataStream.close();
代码示例来源:origin: robovm/robovm
public static void skipAll(InputStream in) throws IOException {
do {
in.skip(Long.MAX_VALUE);
} while (in.read() != -1);
}
代码示例来源:origin: sannies/mp4parser
private void find(InputStream fis) throws IOException {
while (fis.available() > 0) {
byte[] header = new byte[8];
fis.read(header);
if (type.equals("tkhd")) {
lastTkhd = new byte[(int) (size - 8)];
fis.read(lastTkhd);
} else {
if (type.equals("hdlr")) {
byte[] hdlr = new byte[(int) (size - 8)];
fis.read(hdlr);
if (hdlr[8] == 0x76 && hdlr[9] == 0x69 && hdlr[10] == 0x64 && hdlr[11] == 0x65) {
System.out.println("Video Track Header identified");
fis.skip(size - 8);
代码示例来源:origin: apache/mina
@Test
public void testSkip() throws IOException {
byte[] src = "HELLO MINA!".getBytes();
ByteBuffer bb = ByteBuffer.wrap(src);
InputStream is = new ByteBufferInputStream(bb);
is.skip(6);
assertEquals(5, is.available());
assertEquals('M', is.read());
assertEquals('I', is.read());
assertEquals('N', is.read());
assertEquals('A', is.read());
is.skip((long) Integer.MAX_VALUE + 1);
assertEquals(-1, is.read());
is.close();
}
代码示例来源:origin: Tencent/tinker
in.skip(BSUtil.HEADER_SIZE);
DataInputStream ctrlBlockIn = new DataInputStream(new GZIPInputStream(in));
in.skip(ctrlBlockLen + BSUtil.HEADER_SIZE);
InputStream diffBlockIn = new GZIPInputStream(in);
in.skip(diffBlockLen + ctrlBlockLen + BSUtil.HEADER_SIZE);
InputStream extraBlockIn = new GZIPInputStream(in);
diffBlockIn.close();
extraBlockIn.close();
} finally {
oldFile.close();
代码示例来源:origin: apache/incubator-dubbo
public static void skipUnusedStream(InputStream is) throws IOException {
if (is.available() > 0) {
is.skip(is.available());
}
}
}
代码示例来源:origin: commons-io/commons-io
@Test
public void testSkipWithoutBOM() throws Exception {
final byte[] data = new byte[] { 'A', 'B', 'C', 'D' };
final InputStream in = new BOMInputStream(createUtf8DataStream(data, false));
in.skip(2L);
assertEquals('C', in.read());
in.close();
}
代码示例来源:origin: Yalantis/uCrop
@Override
public long skip(long total) throws IOException {
if (total < 0) {
return 0;
}
long toSkip = total;
while (toSkip > 0) {
long skipped = is.skip(toSkip);
if (skipped > 0) {
toSkip -= skipped;
} else {
// Skip has no specific contract as to what happens when you reach the end of
// the stream. To differentiate between temporarily not having more data and
// having finished the stream, we read a single byte when we fail to skip any
// amount of data.
int testEofByte = is.read();
if (testEofByte == -1) {
break;
} else {
toSkip--;
}
}
}
return total - toSkip;
}
内容来源于网络,如有侵权,请联系作者删除!