📄 asciiinputstream.java
字号:
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -