⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asciioutputstream.java

📁 Ftp服务1.0
💻 JAVA
字号:
package ranab.io;

import java.io.*;
import java.io.IOException;
import java.io.OutputStream;

/**
 * Write ASCII data. Before writing it filters the data.
 * 
 * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
 */
public
class AsciiOutputStream extends OutputStream {
    
    private long    mlActualByteWritten = 0;
    private boolean mbIgnoreNonAscii    = true;
    private OutputStream mOutputStream;
    
    /**
     * Constructor.
     * @param os <code>java.io.OutputStream</code> to be filtered.
     */
    public AsciiOutputStream(OutputStream os) {
        mOutputStream = os;
    }
     
    /**
     * Write a single byte. 
     * ASCII characters are defined to be
     * the lower half of an eight-bit code set (i.e., the most
     * significant bit is zero). Change "\n" to "\r\n".
     */
    public void write(int i) throws IOException {
        
        if (mbIgnoreNonAscii && (i > 0x7F) ) {
            return;
        }
        
        if (i == '\r') {
            return;
        }
        if (i == '\n') {
            actualWrite('\r');
        }
        actualWrite(i);
        
    } 
    
    /**
     * Close stream
     */
    public void close() throws IOException {
        mOutputStream.close();
    }
    
    /**
     * Flush stream data
     */
    public void flush() throws IOException {
        mOutputStream.flush();
    }
    
    /**
     * write actual data.
     */
    private void actualWrite(int b) throws IOException {
        mOutputStream.write(b);
        ++mlActualByteWritten;
    }

        
    /**
     * Get actual byte written.
     */
    public long getByteWritten() {
        return mlActualByteWritten;
    }
     
    /**
     * Is non ascii character ignored. 
     * If true don't write 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 + -