Package xyz.cofe.text

Class EndLineReWriter

java.lang.Object
java.io.Writer
xyz.cofe.text.EndLineReWriter
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable, java.lang.Appendable, java.lang.AutoCloseable
Direct Known Subclasses:
PrefixWriter

public class EndLineReWriter
extends java.io.Writer
Преобразовывает известные символы переводы строк (Windows,Linux,Mac,...) в указанную форму.

Пример, исходная строка:
"linux\nMac\rWindows\r\nOther\n\r..."

Будет переведена как, если указана форма Linux (\n):
"linux\nMac\nWindows\nOther\n..."
Author:
gocha
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.lang.String endl
    Символы перевода строк
    protected java.util.function.Function<java.lang.String,​java.lang.String> lineConvertor
    Функция преобразование строки.
    protected java.io.Writer writer
    сюда записывается преобразованный текст

    Fields inherited from class java.io.Writer

    lock
  • Constructor Summary

    Constructors 
    Constructor Description
    EndLineReWriter​(java.io.Writer writer)
    Конструктор
    EndLineReWriter​(java.io.Writer writer, java.lang.String endl)
    Конструктор
    EndLineReWriter​(java.io.Writer writer, EndLine endl)
    Конструктор
  • Method Summary

    Modifier and Type Method Description
    void close()  
    void flush()  
    java.lang.String getEndl()
    Символы перевода строк в которые необходимо перевести обнаруженные
    EndLine getEndLine()
    Символы перевода строк в которые необходимо перевести обнаруженные
    protected java.lang.StringBuilder getLineBuffer()
    Буфер текущей строки строки
    java.util.function.Function<java.lang.String,​java.lang.String> getLineConvertor()
    Указываеют функцию преобразования строки
    protected void lineBufferAppend​(char c)
    Добавить символ в буфер строки
    protected void lineBufferFlush​(boolean forceConvert)
    Сброс буфера текущей строки
    void setEndl​(java.lang.String endl)
    Указывает символы перевода строк в которые необходимо перевести обнаруженные
    void setEndLine​(EndLine endline)
    Указывает символы перевода строк в которые необходимо перевести обнаруженные
    void setLineConvertor​(java.util.function.Function<java.lang.String,​java.lang.String> newLineConv)
    Указываеют функцию преобразования строки
    void write​(char[] cbuf, int off, int len)  
    protected void writeChar​(char c0)
    Записывает символ в поток
    protected void writeEndLine()
    Записывает перевод строки в поток
    protected void writeEndLine​(char[] cbuff, int coff, int clen, char[] newlineChar, int nlOff)
    Записывает перевод строки в поток

    Methods inherited from class java.io.Writer

    append, append, append, nullWriter, write, write, write, write

    Methods inherited from class java.lang.Object

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

    • writer

      protected java.io.Writer writer
      сюда записывается преобразованный текст
    • endl

      protected java.lang.String endl
      Символы перевода строк
    • lineConvertor

      protected java.util.function.Function<java.lang.String,​java.lang.String> lineConvertor
      Функция преобразование строки. Может использования для добавления префикса или еще каких либо действий
  • Constructor Details

    • EndLineReWriter

      public EndLineReWriter​(java.io.Writer writer)
      Конструктор
      Parameters:
      writer - сюда записывается преобразованный текст
    • EndLineReWriter

      public EndLineReWriter​(java.io.Writer writer, java.lang.String endl)
      Конструктор
      Parameters:
      writer - сюда записывается преобразованный текст
      endl - Символы перевода строк
    • EndLineReWriter

      public EndLineReWriter​(java.io.Writer writer, EndLine endl)
      Конструктор
      Parameters:
      writer - сюда записывается преобразованный текст
      endl - Символы перевода строк
  • Method Details

    • getEndl

      public java.lang.String getEndl()
      Символы перевода строк в которые необходимо перевести обнаруженные
      Returns:
      целевые символы перевода строк
    • setEndl

      public void setEndl​(java.lang.String endl)
      Указывает символы перевода строк в которые необходимо перевести обнаруженные
      Parameters:
      endl - целевые символы перевода строк
    • setEndLine

      public void setEndLine​(EndLine endline)
      Указывает символы перевода строк в которые необходимо перевести обнаруженные
      Parameters:
      endline - целевые символы перевода строк
    • getEndLine

      public EndLine getEndLine()
      Символы перевода строк в которые необходимо перевести обнаруженные
      Returns:
      целевые символы перевода строк. Вычисляет на основании совпадения свойства endl, если нет совпадения, то возвращает null.
    • getLineBuffer

      protected java.lang.StringBuilder getLineBuffer()
      Буфер текущей строки строки
      Returns:
      буфер
    • getLineConvertor

      public java.util.function.Function<java.lang.String,​java.lang.String> getLineConvertor()
      Указываеют функцию преобразования строки
      Returns:
      функция конвертирования
    • setLineConvertor

      public void setLineConvertor​(java.util.function.Function<java.lang.String,​java.lang.String> newLineConv)
      Указываеют функцию преобразования строки
      Parameters:
      newLineConv - функция конвертирования
    • lineBufferFlush

      protected void lineBufferFlush​(boolean forceConvert) throws java.io.IOException
      Сброс буфера текущей строки
      Parameters:
      forceConvert - true - Конвертировать строку без учета длины буфера
      Throws:
      java.io.IOException - Ошибка IO
    • lineBufferAppend

      protected void lineBufferAppend​(char c)
      Добавить символ в буфер строки
      Parameters:
      c - символ
    • write

      public void write​(char[] cbuf, int off, int len) throws java.io.IOException
      Specified by:
      write in class java.io.Writer
      Throws:
      java.io.IOException
    • writeEndLine

      protected void writeEndLine() throws java.io.IOException
      Записывает перевод строки в поток
      Throws:
      java.io.IOException - Ошибка IO
    • writeEndLine

      protected void writeEndLine​(char[] cbuff, int coff, int clen, char[] newlineChar, int nlOff) throws java.io.IOException
      Записывает перевод строки в поток
      Parameters:
      cbuff - Буффер байтов
      coff - Смещение начала текста в буфере
      clen - Размер текста
      newlineChar - Размер символы перевода строк
      nlOff - Смещение в буфере символов перевода строк
      Throws:
      java.io.IOException - Ошибка IO
    • writeChar

      protected void writeChar​(char c0) throws java.io.IOException
      Записывает символ в поток
      Parameters:
      c0 - Символ
      Throws:
      java.io.IOException - Ошибка IO
    • flush

      public void flush() throws java.io.IOException
      Specified by:
      flush in interface java.io.Flushable
      Specified by:
      flush in class java.io.Writer
      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
      Specified by:
      close in class java.io.Writer
      Throws:
      java.io.IOException