当前位置: 首页>>代码示例>>Java>>正文


Java InputStream.mark方法代码示例

本文整理汇总了Java中java.io.InputStream.mark方法的典型用法代码示例。如果您正苦于以下问题:Java InputStream.mark方法的具体用法?Java InputStream.mark怎么用?Java InputStream.mark使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.io.InputStream的用法示例。


在下文中一共展示了InputStream.mark方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testLimit_skip

import java.io.InputStream; //导入方法依赖的package包/类
public void testLimit_skip() throws Exception {
  byte[] big = newPreFilledByteArray(5);
  InputStream bin = new ByteArrayInputStream(big);
  InputStream lin = ByteStreams.limit(bin, 2);

  // also test available
  lin.mark(2);
  assertEquals(2, lin.available());
  lin.skip(1);
  assertEquals(1, lin.available());

  lin.reset();
  assertEquals(2, lin.available());
  lin.skip(3);
  assertEquals(0, lin.available());
}
 
开发者ID:zugzug90,项目名称:guava-mock,代码行数:17,代码来源:ByteStreamsTest.java

示例2: loadPrototype

import java.io.InputStream; //导入方法依赖的package包/类
/** Load lua source or lua binary from an input stream into a Prototype. 
 * The InputStream is either a binary lua chunk starting with the lua binary chunk signature, 
 * or a text input file.  If it is a text input file, it is interpreted as a UTF-8 byte sequence.  
 * @param is Input stream containing a lua script or compiled lua"
 * @param chunkname Name that will be used within the chunk as the source.
 * @param mode String containing 'b' or 't' or both to control loading as binary or text or either.
 */
public Prototype loadPrototype(InputStream is, String chunkname, String mode) throws IOException {
	if (mode.indexOf('b') >= 0) {
		if (undumper == null)
			error("No undumper.");
		if (!is.markSupported())
			is = new BufferedStream(is);
		is.mark(4);
		final Prototype p = undumper.undump(is, chunkname);
		if (p != null)
			return p;
		is.reset();
	}
	if (mode.indexOf('t') >= 0) {
		return compilePrototype(is, chunkname);
	}
	error("Failed to load prototype "+chunkname+" using mode '"+mode+"'");
	return null;
}
 
开发者ID:nekocode,项目名称:Hubs,代码行数:26,代码来源:Globals.java

示例3: testMarkAndReset

import java.io.InputStream; //导入方法依赖的package包/类
private void testMarkAndReset(TransferKind transferKind) throws IOException {
  MockResponse response = new MockResponse();
  transferKind.setBody(response, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1024);
  server.enqueue(response);
  server.enqueue(response);

  InputStream in = urlFactory.open(server.url("/").url()).getInputStream();
  assertFalse("This implementation claims to support mark().", in.markSupported());
  in.mark(5);
  assertEquals("ABCDE", readAscii(in, 5));
  try {
    in.reset();
    fail();
  } catch (IOException expected) {
  }
  assertEquals("FGHIJKLMNOPQRSTUVWXYZ", readAscii(in, Integer.MAX_VALUE));
  in.close();
  assertContent("ABCDEFGHIJKLMNOPQRSTUVWXYZ", urlFactory.open(server.url("/").url()));
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:20,代码来源:URLConnectionTest.java

示例4: fetchXmlUrl

import java.io.InputStream; //导入方法依赖的package包/类
/**
 * Fetches the document at the given URL and returns it as a stream. Returns
 * null if anything wrong happens.
 *
 * @param urlString The URL to load, as a string.
 * @param monitor {@link ITaskMonitor} related to this URL.
 * @param outException If non null, where to store any exception that
 *            happens during the fetch.
 * @see UrlOpener UrlOpener, which handles all URL logic.
 */
private InputStream fetchXmlUrl(String urlString,
        DownloadCache cache,
        ITaskMonitor monitor,
        Exception[] outException) {
    try {
        InputStream xml = cache.openCachedUrl(urlString, monitor);
        if (xml != null) {
            xml.mark(500000);
            xml = new NonClosingInputStream(xml);
            ((NonClosingInputStream) xml).setCloseBehavior(CloseBehavior.RESET);
        }
        return xml;
    } catch (Exception e) {
        if (outException != null) {
            outException[0] = e;
        }
    }

    return null;
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:31,代码来源:AddonsListFetcher.java

示例5: restoreWalletFromProtobufOrBase58

import java.io.InputStream; //导入方法依赖的package包/类
public static Wallet restoreWalletFromProtobufOrBase58(final InputStream is,
        final NetworkParameters expectedNetworkParameters) throws IOException {
    is.mark((int) Constants.BACKUP_MAX_CHARS);

    try {
        return restoreWalletFromProtobuf(is, expectedNetworkParameters);
    } catch (final IOException x) {
        try {
            is.reset();
            return restorePrivateKeysFromBase58(is, expectedNetworkParameters);
        } catch (final IOException x2) {
            throw new IOException(
                    "cannot read protobuf (" + x.getMessage() + ") or base58 (" + x2.getMessage() + ")", x);
        }
    }
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:17,代码来源:WalletUtils.java

示例6: readFrom

import java.io.InputStream; //导入方法依赖的package包/类
@Override
public void readFrom(InputStream in) throws IOException {
    // Skip data type byte (we assume it's already read)       
    size = 1;
    InputStream markInputStream = in.markSupported() ? in : new BufferedInputStream(in);

    while (true) {
        // Look for the 3-byte object end marker [0x00 0x00 0x09]
        markInputStream.mark(3);
        byte[] endMarker = new byte[3];
        markInputStream.read(endMarker);

        if (endMarker[0] == OBJECT_END_MARKER[0] && endMarker[1] == OBJECT_END_MARKER[1] && endMarker[2] == OBJECT_END_MARKER[2]) {
            // End marker found
            size += 3;
            return;
        } else {
            // End marker not found; reset the stream to the marked position and read an AMF property
            markInputStream.reset();
            // Read the property key...
            String key = AmfString.readStringFrom(in, true);
            size += AmfString.sizeOf(key, true);
            // ...and the property value
            AmfData value = AmfDecoder.readFrom(markInputStream);
            size += value.getSize();
            properties.put(key, value);
        }
    }
}
 
开发者ID:pedroSG94,项目名称:rtmp-rtsp-stream-client-java,代码行数:30,代码来源:AmfObject.java

示例7: getInputStream

import java.io.InputStream; //导入方法依赖的package包/类
private static InputStream getInputStream(URL jar) throws IOException {
	// to fix offset caused by launch4j
	try {
		InputStream is = jar.openStream();
		Log.debug("Scanning for jar...");
		long offset = 0;
		boolean found = false;
		try {
			while (true) {
				if (getUnsignedInt(is) == 0x04034b50L) {
					found = true;
					break;
				}
				offset += 4;
			}
		} catch (IOException ignored) {
		}
		is.close();

		InputStream finalIS = jar.openStream();
		if (!found) {
			Log.debug("Failed to find start");
		} else {
			Log.debug("Skipping " + offset + " bytes until start of jar [" + finalIS.skip(offset) + "]");
			if (finalIS.markSupported())
				finalIS.mark(Integer.MAX_VALUE);
		}
		return finalIS;
	} catch (SSLException ssle) {
		Log.error("SSL Exception", ssle);
	}
}
 
开发者ID:RedTroop,项目名称:Cubes_2,代码行数:33,代码来源:AssetFinder.java

示例8: getSoundbank

import java.io.InputStream; //导入方法依赖的package包/类
public Soundbank getSoundbank(InputStream stream)
        throws InvalidMidiDataException, IOException {
    try {
        stream.mark(512);
        return new DLSSoundbank(stream);
    } catch (RIFFInvalidFormatException e) {
        stream.reset();
        return null;
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:11,代码来源:DLSSoundbankReader.java

示例9: getSoundbank

import java.io.InputStream; //导入方法依赖的package包/类
@Override
public Soundbank getSoundbank(InputStream stream)
        throws InvalidMidiDataException, IOException {
    try {
        stream.mark(512);
        return new SF2Soundbank(stream);
    } catch (RIFFInvalidFormatException e) {
        stream.reset();
        return null;
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:12,代码来源:SF2SoundbankReader.java

示例10: readFrom

import java.io.InputStream; //导入方法依赖的package包/类
@Override
public void readFrom(InputStream in) throws IOException {
    // Skip data type byte (we assume it's already read)
    size = 1;
    InputStream markInputStream = in.markSupported() ? in : new BufferedInputStream(in);

    while (true) {
        // Look for the 3-byte object end marker [0x00 0x00 0x09]
        markInputStream.mark(3);
        byte[] endMarker = new byte[3];
        markInputStream.read(endMarker);

        if (endMarker[0] == OBJECT_END_MARKER[0] && endMarker[1] == OBJECT_END_MARKER[1] && endMarker[2] == OBJECT_END_MARKER[2]) {
            // End marker found
            size += 3;
            return;
        } else {
            // End marker not found; reset the stream to the marked position and read an AMF property
            markInputStream.reset();
            // Read the property key...
            String key = AmfString.readStringFrom(in, true);
            size += AmfString.sizeOf(key, true);
            // ...and the property value
            AmfData value = AmfDecoder.readFrom(markInputStream);
            size += value.getSize();
            properties.put(key, value);
        }
    }
}
 
开发者ID:wuyisheng,项目名称:libRtmp,代码行数:30,代码来源:AmfObject.java

示例11: ReadOnceInputEvent

import java.io.InputStream; //导入方法依赖的package包/类
public ReadOnceInputEvent(String appName, String route, String requestUrl, String method, InputStream body, Headers headers, QueryParameters parameters) {
    this.appName = Objects.requireNonNull(appName);
    this.route = Objects.requireNonNull(route);
    this.requestUrl = Objects.requireNonNull(requestUrl);
    this.method = Objects.requireNonNull(method).toUpperCase();
    this.body = new BufferedInputStream(Objects.requireNonNull(body));
    this.headers = Objects.requireNonNull(headers);
    this.queryParameters = Objects.requireNonNull(parameters);
    body.mark(Integer.MAX_VALUE);
}
 
开发者ID:fnproject,项目名称:fdk-java,代码行数:11,代码来源:ReadOnceInputEvent.java

示例12: getSoundbank

import java.io.InputStream; //导入方法依赖的package包/类
@Override
public Soundbank getSoundbank(InputStream stream)
        throws InvalidMidiDataException, IOException {
    try {
        stream.mark(512);
        return new DLSSoundbank(stream);
    } catch (RIFFInvalidFormatException e) {
        stream.reset();
        return null;
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:12,代码来源:DLSSoundbankReader.java

示例13: xContentType

import java.io.InputStream; //导入方法依赖的package包/类
/**
 * Guesses the content type based on the provided input stream without consuming it.
 *
 * @deprecated the content type should not be guessed except for few cases where we effectively don't know the content type.
 * The REST layer should move to reading the Content-Type header instead. There are other places where auto-detection may be needed.
 * This method is deprecated to prevent usages of it from spreading further without specific reasons.
 */
@Deprecated
public static XContentType xContentType(InputStream si) throws IOException {
    if (si.markSupported() == false) {
        throw new IllegalArgumentException("Cannot guess the xcontent type without mark/reset support on " + si.getClass());
    }
    si.mark(GUESS_HEADER_LENGTH);
    try {
        final byte[] firstBytes = new byte[GUESS_HEADER_LENGTH];
        final int read = Streams.readFully(si, firstBytes);
        return xContentType(new BytesArray(firstBytes, 0, read));
    } finally {
        si.reset();
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:22,代码来源:XContentFactory.java

示例14: parse

import java.io.InputStream; //导入方法依赖的package包/类
public void parse(InputStream stream,
      ContentHandler handler, Metadata metadata,
      ParseContext parseContext) throws IOException, SAXException,
      TikaException 
{
   byte[] initial4 = new byte[4];
   InputStream wrapped;
   // Preserve TikaInputStreams as TikaInputStreams as they require less memory to process
   if (stream.markSupported())
   {
      stream.mark(initial4.length);
      IOUtils.readFully(stream, initial4);
      stream.reset();
      wrapped = stream;
   }
   else
   {
      PushbackInputStream inp = new PushbackInputStream(stream, 4);
      IOUtils.readFully(inp, initial4);
      inp.unread(initial4);
      wrapped = inp;
   }
   
   // Which is it?
   if(initial4[0] == POIFSConstants.OOXML_FILE_HEADER[0] &&
      initial4[1] == POIFSConstants.OOXML_FILE_HEADER[1] &&
      initial4[2] == POIFSConstants.OOXML_FILE_HEADER[2] &&
      initial4[3] == POIFSConstants.OOXML_FILE_HEADER[3])
   {
      ooxmlParser.parse(wrapped, handler, metadata, parseContext);
   }
   else
   {
      ole2Parser.parse(wrapped, handler, metadata, parseContext);
   }
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:37,代码来源:TikaOfficeDetectParser.java

示例15: calculateContentHash

import java.io.InputStream; //导入方法依赖的package包/类
/**
 * Calculate the hash of the request's payload. Subclass could override this
 * method to provide different values for "x-amz-content-sha256" header or
 * do any other necessary set-ups on the request headers. (e.g. aws-chunked
 * uses a pre-defined header value, and needs to change some headers
 * relating to content-encoding and content-length.)
 */
protected String calculateContentHash(Aws4SignerRequestParams signerRequestParams,
                                      SdkHttpFullRequest.Builder requestBuilder) {
    SdkHttpFullRequest.Builder requestToSign = signerRequestParams.httpRequest();
    InputStream payloadStream = getBinaryRequestPayloadStream(requestToSign.content());
    payloadStream.mark(getReadLimit(signerRequestParams));
    String contentSha256 = BinaryUtils.toHex(hash(payloadStream));
    try {
        payloadStream.reset();
    } catch (IOException e) {
        throw new SdkClientException("Unable to reset stream after calculating AWS4 signature", e);
    }
    return contentSha256;
}
 
开发者ID:aws,项目名称:aws-sdk-java-v2,代码行数:21,代码来源:Aws4Signer.java


注:本文中的java.io.InputStream.mark方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。