public virtual long skip(long charCount){if (charCount < 0){throw new System.ArgumentException("charCount < 0: " + charCount);}lock (@lock){long skipped = 0;int toRead = charCount < 512 ? (int)charCount : 512;char[] charsSkipped = new char[toRead];while (skipped < charCount){int read_1 = read(charsSkipped, 0, toRead);if (read_1 == -1){return skipped;}skipped += read_1;if (read_1 < toRead){return skipped;}if (charCount - skipped < toRead){toRead = (int)(charCount - skipped);}}return skipped;}}