Class UUEncoderStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class UUEncoderStream
    extends java.io.FilterOutputStream
    This class implements a UUEncoder. It is implemented as a FilterOutputStream, so one can just wrap this class around any output stream and write bytes into this filter. The Encoding is done as the bytes are written out.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private byte[] buffer  
      private int bufsize  
      private int mode  
      private java.lang.String name  
      private boolean wrotePrefix  
      private boolean wroteSuffix  
      • Fields inherited from class java.io.FilterOutputStream

        out
    • Constructor Summary

      Constructors 
      Constructor Description
      UUEncoderStream​(java.io.OutputStream out)
      Create a UUencoder that encodes the specified input stream
      UUEncoderStream​(java.io.OutputStream out, java.lang.String name)
      Create a UUencoder that encodes the specified input stream
      UUEncoderStream​(java.io.OutputStream out, java.lang.String name, int mode)
      Create a UUencoder that encodes the specified input stream
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      private void encode()
      Encode a line.
      void flush()  
      void setNameMode​(java.lang.String name, int mode)
      Set up the buffer name and permission mode.
      void write​(byte[] data)  
      void write​(byte[] b, int off, int len)  
      void write​(int c)  
      private void writePrefix()
      Write out the prefix: "begin "
      private void writeSuffix()
      Write a single line containing space and the suffix line containing the single word "end" (terminated by a newline)
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • buffer

        private byte[] buffer
      • bufsize

        private int bufsize
      • wrotePrefix

        private boolean wrotePrefix
      • wroteSuffix

        private boolean wroteSuffix
      • name

        private java.lang.String name
      • mode

        private int mode
    • Constructor Detail

      • UUEncoderStream

        public UUEncoderStream​(java.io.OutputStream out)
        Create a UUencoder that encodes the specified input stream
        Parameters:
        out - the output stream
      • UUEncoderStream

        public UUEncoderStream​(java.io.OutputStream out,
                               java.lang.String name)
        Create a UUencoder that encodes the specified input stream
        Parameters:
        out - the output stream
        name - Specifies a name for the encoded buffer
      • UUEncoderStream

        public UUEncoderStream​(java.io.OutputStream out,
                               java.lang.String name,
                               int mode)
        Create a UUencoder that encodes the specified input stream
        Parameters:
        out - the output stream
        name - Specifies a name for the encoded buffer
        mode - Specifies permission mode for the encoded buffer
    • Method Detail

      • setNameMode

        public void setNameMode​(java.lang.String name,
                                int mode)
        Set up the buffer name and permission mode. This method has any effect only if it is invoked before you start writing into the output stream
        Parameters:
        name - the buffer name
        mode - the permission mode
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] data)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(int c)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • flush

        public void flush()
                   throws java.io.IOException
        Specified by:
        flush in interface java.io.Flushable
        Overrides:
        flush in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • writePrefix

        private void writePrefix()
                          throws java.io.IOException
        Write out the prefix: "begin "
        Throws:
        java.io.IOException
      • writeSuffix

        private void writeSuffix()
                          throws java.io.IOException
        Write a single line containing space and the suffix line containing the single word "end" (terminated by a newline)
        Throws:
        java.io.IOException
      • encode

        private void encode()
                     throws java.io.IOException
        Encode a line. Start off with the character count, followed by the encoded atoms and terminate with LF. (or is it CRLF or the local line-terminator ?) Take three bytes and encodes them into 4 characters If bufsize if not a multiple of 3, the remaining bytes are filled with '1'. This insures that the last line won't end in spaces and potentiallly be truncated.
        Throws:
        java.io.IOException