InputStream 類中的 mark() 和 reset() 方法是用于在輸入流中記錄和重置位置的。它們常常與 markSupported() 方法一起使用,以確定輸入流是否支持這些操作。
mark(int readlimit): 此方法用于在輸入流中標記當前位置。它接受一個參數 readlimit,表示在調用 reset() 方法之前可以讀取的字節數。如果在 readlimit 字節之后調用 reset(),則不能保證所有的字節都會被重新讀取。
reset(): 此方法用于將輸入流的位置重置為上次調用 mark() 方法時的位置。在調用 reset() 之前,必須先調用 mark(),否則可能會拋出 IOException。
markSupported(): 此方法用于檢查輸入流是否支持 mark() 和 reset() 方法。如果返回 true,則表示支持這些方法;如果返回 false,則表示不支持。
這些方法通常用于在處理輸入流時需要多次讀取相同數據的情況,例如在處理文件或網絡連接時。請注意,并非所有的 InputStream 子類都支持這些方法,因此在使用之前應該先檢查 markSupported() 的返回值。