Package xyz.cofe.text
Class TextBuffer
- java.lang.Object
-
- java.io.Reader
-
- xyz.cofe.text.TextBuffer
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.lang.Readable
public class TextBuffer extends java.io.ReaderСинхронный текстовый буфер для потоковых операций: Reader / Writer.
Операции чтения (read()) выставляют флаг ожидания waitData и будет ждать появления данных в буфере, переодично опрашивая содержимое буфера.
Данные буфера чиаются с начала, и прочитанные данные удаляются из буфера.
Операции записи (write()) временно блокирует буфер для записи данных в конец буфера.- Author:
- nt.gocha@gmail.com
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringBuilderbufferprotected java.lang.ObjectbufferLockprotected java.util.Randomrndprotected java.util.concurrent.atomic.AtomicBooleanwaitDataprotected java.io.Writerwriter
-
Constructor Summary
Constructors Constructor Description TextBuffer()TextBuffer(java.lang.StringBuilder buffer)TextBuffer(java.lang.StringBuilder buffer, java.lang.Object bufferLock)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Закрывает буферjava.io.WritercreateWriter()java.lang.StringBuildergetBuffer()Буферjava.lang.ObjectgetBufferLock()Объект для блокировки чтения/записи содержимого буфераjava.lang.StringgetBufferText()Синхронно читает содержимое буфераjava.io.WritergetWriter()booleanisWaitData()Возвращает флаг ожидания данных в буфере, т.е. в данный момент выполняется операция read()intread(char[] cbuf, int off, int len)Синхронно читает данные из буфераvoidwrite(java.lang.String txt)Синхронно записывает данные в конец буфера
-
-
-
Method Detail
-
getBuffer
public java.lang.StringBuilder getBuffer()
Буфер- Returns:
- буфер
-
getBufferLock
public java.lang.Object getBufferLock()
Объект для блокировки чтения/записи содержимого буфера- Returns:
- объект блокировки
-
getBufferText
public java.lang.String getBufferText()
Синхронно читает содержимое буфера- Returns:
- содержимое буфера
-
isWaitData
public boolean isWaitData()
Возвращает флаг ожидания данных в буфере, т.е. в данный момент выполняется операция read()- Returns:
- флаг ожидания данных
-
read
public int read(char[] cbuf, int off, int len) throws java.io.IOExceptionСинхронно читает данные из буфера- Specified by:
readin classjava.io.Reader- Parameters:
cbuf- приемникoff- смещениеlen- длинна- Returns:
- сколько прочитано
- Throws:
java.io.IOException- ошибка чтения
-
close
public void close() throws java.io.IOExceptionЗакрывает буфер- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classjava.io.Reader- Throws:
java.io.IOException- Ошибка IO
-
write
public void write(java.lang.String txt)
Синхронно записывает данные в конец буфера- Parameters:
txt- данные
-
createWriter
public java.io.Writer createWriter()
-
getWriter
public java.io.Writer getWriter()
-
-