asciiinputstream.java
来自「Ftp服务1.0」· Java 代码 · 共 84 行
JAVA
84 行
package ranab.io;
import java.io.IOException;
import java.io.InputStream;
/**
* Read ASCII data. It filters out the ASCII data from the
* <code>InputStream</code>.
*
* @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
*/
public
class AsciiInputStream extends InputStream {
private long mlActualByteRead = 0;
private boolean mbIgnoreNonAscii = true;
private InputStream mInputStream;
/**
* Constructor
* @param is <code>InputStream</code> to be filtered.
*/
public AsciiInputStream(InputStream is) {
mInputStream = is;
}
/**
* Read a single character. Change "\r\n" to "\n".
*/
public int read() throws IOException {
int c;
while ( (c = actualRead()) != -1) {
if (c == '\r') {
continue;
}
if (mbIgnoreNonAscii && (c > 0x7F) ) {
continue;
}
break;
}
return c;
}
/**
* Close stream
*/
public void close() throws IOException {
mInputStream.close();
}
/**
* read actual data from the stream
*/
private int actualRead() throws IOException {
int c = mInputStream.read();
if (c != -1) {
++mlActualByteRead;
}
return c;
}
/**
* Get actual byte read.
*/
public long getActualByteRead() {
return mlActualByteRead;
}
/**
* Is non ascii character ignored.
* If true don't read non-ascii character.
* Else first convert it to ascii by ANDing with 0x7F.
*/
public boolean getIsIgnoreNonAscii() {
return mbIgnoreNonAscii;
}
/**
* Set non-ascii ignore boolean value.
*/
public void setIsIgnoreNonAscii(boolean ig) {
mbIgnoreNonAscii = ig;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?