diff options
author | Bdale Garbee <bdale@gag.com> | 2017-07-21 17:44:03 -0600 |
---|---|---|
committer | Bdale Garbee <bdale@gag.com> | 2017-07-21 17:44:03 -0600 |
commit | c8dbcaf69cd538a31ab6e2b568237ae7c8656a9a (patch) | |
tree | 213ec02db2e80f2e8c39772c0bde95d802900e53 /altoslib/AltosStringInputStream.java | |
parent | 0cbfa444a9f9159cb509bb47ca5590fc1d709f64 (diff) | |
parent | ea3b5815b27005b2f4c3034715f656d28ea8534e (diff) |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Diffstat (limited to 'altoslib/AltosStringInputStream.java')
-rw-r--r-- | altoslib/AltosStringInputStream.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/altoslib/AltosStringInputStream.java b/altoslib/AltosStringInputStream.java new file mode 100644 index 00000000..48fff3ea --- /dev/null +++ b/altoslib/AltosStringInputStream.java @@ -0,0 +1,61 @@ +/* + * Copyright © 2017 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + */ + +package org.altusmetrum.altoslib_12; + +import java.util.*; +import java.io.*; + +public class AltosStringInputStream extends InputStream { + + String s; + int at; + int mark; + + public int available() { + return s.length() - at; + } + + public void mark(int read_limit) { + mark = at; + } + + public boolean markSupported() { + return true; + } + + public int read() { + if (at == s.length()) + return -1; + return (int) s.charAt(at++); + } + + public void reset() { + at = mark; + } + + public long skip(long n) throws IOException { + if (n < 0) n = 0; + + if (at + n > s.length()) + n = s.length() - at; + at += n; + return n; + } + + public AltosStringInputStream(String s) { + this.s = s; + this.at = 0; + } +} |