does not actually throw but as it's part of our public API and
removing it can cause compilation errors, leaving it in (and documenting to quiet Eclipse
warning).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003e\u003ccode\u003eBlobstoreInputStream\u003c/code\u003e provides an \u003ccode\u003eInputStream\u003c/code\u003e view for reading data from a blob in Blobstore.\u003c/p\u003e\n"],["\u003cp\u003eThis class is thread-compatible but requires external synchronization for multithreaded use, as it's not thread-safe.\u003c/p\u003e\n"],["\u003cp\u003eYou can create a \u003ccode\u003eBlobstoreInputStream\u003c/code\u003e to read from a blob starting either at the beginning or at a specified offset using the blob key.\u003c/p\u003e\n"],["\u003cp\u003eThe class inherits several methods from \u003ccode\u003eInputStream\u003c/code\u003e and \u003ccode\u003eObject\u003c/code\u003e, including \u003ccode\u003eread()\u003c/code\u003e, \u003ccode\u003eclose()\u003c/code\u003e, \u003ccode\u003emark()\u003c/code\u003e, and others.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eBlobstoreInputStream\u003c/code\u003e overrides various \u003ccode\u003eInputStream\u003c/code\u003e methods such as \u003ccode\u003eclose()\u003c/code\u003e, \u003ccode\u003emark()\u003c/code\u003e, \u003ccode\u003emarkSupported()\u003c/code\u003e, \u003ccode\u003eread()\u003c/code\u003e, and \u003ccode\u003ereset()\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,[]]