Class AnsiWriter
- All Implemented Interfaces:
Closeable,Flushable,Appendable,AutoCloseable
- Direct Known Subclasses:
WindowsAnsiWriter
The AnsiWriter class extends FilterWriter to intercept and process ANSI escape
sequences written to the underlying writer. It extracts ANSI escape codes and
calls corresponding process* methods for each recognized sequence.
This class just filters out the escape codes so that they are not sent out to
the underlying Writer: process* methods are empty. Subclasses
should actually perform the ANSI escape behaviors by implementing active code
in process* methods.
This class is useful for implementing terminal emulation, where ANSI escape sequences need to be interpreted to control cursor movement, text attributes, colors, and other terminal features.
The class handles various ANSI escape sequences, including:
- Cursor movement (up, down, left, right)
- Cursor positioning (absolute and relative)
- Text attributes (bold, underline, blink, etc.)
- Colors (foreground and background)
- Screen clearing and line manipulation
For more information about ANSI escape codes, see: Wikipedia: ANSI escape code
- Since:
- 1.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intDeprecated.protected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intFields inherited from class java.io.FilterWriter
out -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected voidprocessSGR 0corresponding toReset / Normalprotected voidprocessChangeIconName(String name) processOSC 1;text BELcorresponding toChange Icon labelprotected voidprocessOSC 0;text BELcorresponding toChange Window and Icon labelprotected voidprocessChangeWindowTitle(String title) processOSC 2;text BELcorresponding toChange Window titleprotected voidprocessCharsetSelect(int set, char seq) protected voidprocessCursorDown(int count) processCSI n Bcorresponding toCUD – Cursor Downprotected voidprocessCursorDownLine(int count) processCSI n Ecorresponding toCNL – Cursor Next Lineprotected voidprocessCursorLeft(int count) processCSI n Dcorresponding toCUB – Cursor Backprotected voidprocessCursorRight(int count) processCSI n Ccorresponding toCUF – Cursor Forwardprotected voidprocessCursorTo(int row, int col) processCSI n ; m Hcorresponding toCUP – Cursor PositionorCSI n ; m fcorresponding toHVP – Horizontal and Vertical Positionprotected voidprocessCursorToColumn(int x) processCSI n Gcorresponding toCHA – Cursor Horizontal Absoluteprotected voidprocessCursorUp(int count) processCSI n Acorresponding toCUU – Cursor Upprotected voidprocessCursorUpLine(int count) processCSI n Fcorresponding toCPL – Cursor Previous Lineprotected voidprocessSGR 49corresponding toDefault background colorprotected voidprocessSGR 39corresponding toDefault text color (foreground)protected voidprocessDeleteLine(int optionInt) ProcessCSI sANSI code, corresponding toDL – Delete Lineprotected voidprocessEraseLine(int eraseOption) ProcessCSI n KANSI code, corresponding toED – Erase in Lineprotected voidprocessEraseScreen(int eraseOption) ProcessCSI n JANSI code, corresponding toED – Erase in Displayprotected voidprocessInsertLine(int optionInt) ProcessCSI sANSI code, corresponding toIL – Insert Lineprotected voidProcessCSI uANSI code, corresponding toRCP – Restore Cursor Positionprotected voidProcessCSI sANSI code, corresponding toSCP – Save Cursor Positionprotected voidprocessScrollDown(int optionInt) ProcessCSI n TANSI code, corresponding toSD – Scroll Downprotected voidprocessScrollUp(int optionInt) ProcessCSI n UANSI code, corresponding toSU – Scroll Upprotected voidprocessSetAttribute(int attribute) processSGRother than0(reset),30-39(foreground),40-49(background),90-97(foreground high intensity) or100-107(background high intensity)protected voidprocessSetBackgroundColor(int color) processSGR 40-47corresponding toSet background color.protected voidprocessSetBackgroundColor(int color, boolean bright) processSGR 40-47orSGR 100-107corresponding toSet background coloreither in normal mode or high intensity.protected voidprocessSetBackgroundColorExt(int paletteIndex) processSGR 48corresponding toextended set background colorwith a palette of 255 colors.protected voidprocessSetBackgroundColorExt(int r, int g, int b) processSGR 48corresponding toextended set background colorwith a 24 bits RGB definition of the color.protected voidprocessSetForegroundColor(int color) processSGR 30-37corresponding toSet text color (foreground).protected voidprocessSetForegroundColor(int color, boolean bright) processSGR 30-37orSGR 90-97corresponding toSet text color (foreground)either in normal mode or high intensity.protected voidprocessSetForegroundColorExt(int paletteIndex) processSGR 38corresponding toextended set text color (foreground)with a palette of 255 colors.protected voidprocessSetForegroundColorExt(int r, int g, int b) processSGR 38corresponding toextended set text color (foreground)with a 24 bits RGB definition of the color.protected voidprocessUnknownExtension(ArrayList<Object> options, int command) protected voidprocessUnknownOperatingSystemCommand(int command, String param) Process unknownOSCcommand.voidwrite(char[] cbuf, int off, int len) voidwrite(int data) voidMethods inherited from class java.io.FilterWriter
flush
-
Field Details
-
ERASE_SCREEN_TO_END
protected static final int ERASE_SCREEN_TO_END- See Also:
-
ERASE_SCREEN_TO_BEGINING
protected static final int ERASE_SCREEN_TO_BEGINING- See Also:
-
ERASE_SCREEN
protected static final int ERASE_SCREEN- See Also:
-
ERASE_LINE_TO_END
protected static final int ERASE_LINE_TO_END- See Also:
-
ERASE_LINE_TO_BEGINING
protected static final int ERASE_LINE_TO_BEGINING- See Also:
-
ERASE_LINE
protected static final int ERASE_LINE- See Also:
-
ATTRIBUTE_INTENSITY_BOLD
protected static final int ATTRIBUTE_INTENSITY_BOLD- See Also:
-
ATTRIBUTE_INTENSITY_FAINT
protected static final int ATTRIBUTE_INTENSITY_FAINT- See Also:
-
ATTRIBUTE_ITALIC
protected static final int ATTRIBUTE_ITALIC- See Also:
-
ATTRIBUTE_UNDERLINE
protected static final int ATTRIBUTE_UNDERLINE- See Also:
-
ATTRIBUTE_BLINK_SLOW
protected static final int ATTRIBUTE_BLINK_SLOW- See Also:
-
ATTRIBUTE_BLINK_FAST
protected static final int ATTRIBUTE_BLINK_FAST- See Also:
-
ATTRIBUTE_NEGATIVE_ON
protected static final int ATTRIBUTE_NEGATIVE_ON- See Also:
-
ATTRIBUTE_CONCEAL_ON
protected static final int ATTRIBUTE_CONCEAL_ON- See Also:
-
ATTRIBUTE_UNDERLINE_DOUBLE
protected static final int ATTRIBUTE_UNDERLINE_DOUBLE- See Also:
-
ATTRIBUTE_INTENSITY_NORMAL
protected static final int ATTRIBUTE_INTENSITY_NORMAL- See Also:
-
ATTRIBUTE_UNDERLINE_OFF
protected static final int ATTRIBUTE_UNDERLINE_OFF- See Also:
-
ATTRIBUTE_BLINK_OFF
protected static final int ATTRIBUTE_BLINK_OFF- See Also:
-
ATTRIBUTE_NEGATIVE_Off
-
ATTRIBUTE_NEGATIVE_OFF
protected static final int ATTRIBUTE_NEGATIVE_OFF- See Also:
-
ATTRIBUTE_CONCEAL_OFF
protected static final int ATTRIBUTE_CONCEAL_OFF- See Also:
-
BLACK
protected static final int BLACK- See Also:
-
RED
protected static final int RED- See Also:
-
GREEN
protected static final int GREEN- See Also:
-
YELLOW
protected static final int YELLOW- See Also:
-
BLUE
protected static final int BLUE- See Also:
-
MAGENTA
protected static final int MAGENTA- See Also:
-
CYAN
protected static final int CYAN- See Also:
-
WHITE
protected static final int WHITE- See Also:
-
-
Constructor Details
-
AnsiWriter
-
-
Method Details
-
write
- Overrides:
writein classFilterWriter- Throws:
IOException
-
processRestoreCursorPosition
ProcessCSI uANSI code, corresponding toRCP – Restore Cursor Position- Throws:
IOException- if an error occurs
-
processSaveCursorPosition
ProcessCSI sANSI code, corresponding toSCP – Save Cursor Position- Throws:
IOException- if an error occurs
-
processInsertLine
ProcessCSI sANSI code, corresponding toIL – Insert Line- Parameters:
optionInt- the option- Throws:
IOException- if an error occurs
-
processDeleteLine
ProcessCSI sANSI code, corresponding toDL – Delete Line- Parameters:
optionInt- the option- Throws:
IOException- if an error occurs
-
processScrollDown
ProcessCSI n TANSI code, corresponding toSD – Scroll Down- Parameters:
optionInt- the option- Throws:
IOException- if an error occurs
-
processScrollUp
ProcessCSI n UANSI code, corresponding toSU – Scroll Up- Parameters:
optionInt- the option- Throws:
IOException- if an error occurs
-
processEraseScreen
ProcessCSI n JANSI code, corresponding toED – Erase in Display- Parameters:
eraseOption- the erase option- Throws:
IOException- if an error occurs
-
processEraseLine
ProcessCSI n KANSI code, corresponding toED – Erase in Line- Parameters:
eraseOption- the erase option- Throws:
IOException- if an error occurs
-
processSetAttribute
processSGRother than0(reset),30-39(foreground),40-49(background),90-97(foreground high intensity) or100-107(background high intensity)- Parameters:
attribute- the attribute to set- Throws:
IOException- if an error occurs- See Also:
-
processSetForegroundColor
processSGR 30-37corresponding toSet text color (foreground).- Parameters:
color- the text color- Throws:
IOException- if an error occurs
-
processSetForegroundColor
processSGR 30-37orSGR 90-97corresponding toSet text color (foreground)either in normal mode or high intensity.- Parameters:
color- the text colorbright- is high intensity?- Throws:
IOException- if an error occurs
-
processSetForegroundColorExt
processSGR 38corresponding toextended set text color (foreground)with a palette of 255 colors.- Parameters:
paletteIndex- the text color in the palette- Throws:
IOException- if an error occurs
-
processSetForegroundColorExt
processSGR 38corresponding toextended set text color (foreground)with a 24 bits RGB definition of the color.- Parameters:
r- redg- greenb- blue- Throws:
IOException- if an error occurs
-
processSetBackgroundColor
processSGR 40-47corresponding toSet background color.- Parameters:
color- the background color- Throws:
IOException- if an error occurs
-
processSetBackgroundColor
processSGR 40-47orSGR 100-107corresponding toSet background coloreither in normal mode or high intensity.- Parameters:
color- the background colorbright- is high intensity?- Throws:
IOException- if an error occurs
-
processSetBackgroundColorExt
processSGR 48corresponding toextended set background colorwith a palette of 255 colors.- Parameters:
paletteIndex- the background color in the palette- Throws:
IOException- if an error occurs
-
processSetBackgroundColorExt
processSGR 48corresponding toextended set background colorwith a 24 bits RGB definition of the color.- Parameters:
r- redg- greenb- blue- Throws:
IOException- if an error occurs
-
processDefaultTextColor
processSGR 39corresponding toDefault text color (foreground)- Throws:
IOException- if an error occurs
-
processDefaultBackgroundColor
processSGR 49corresponding toDefault background color- Throws:
IOException- if an error occurs
-
processAttributeRest
processSGR 0corresponding toReset / Normal- Throws:
IOException- if an error occurs
-
processCursorTo
processCSI n ; m Hcorresponding toCUP – Cursor PositionorCSI n ; m fcorresponding toHVP – Horizontal and Vertical Position- Parameters:
row- the rowcol- the column- Throws:
IOException- if an error occurs
-
processCursorToColumn
processCSI n Gcorresponding toCHA – Cursor Horizontal Absolute- Parameters:
x- the column- Throws:
IOException- if an error occurs
-
processCursorUpLine
processCSI n Fcorresponding toCPL – Cursor Previous Line- Parameters:
count- line count- Throws:
IOException- if an error occurs
-
processCursorDownLine
processCSI n Ecorresponding toCNL – Cursor Next Line- Parameters:
count- line count- Throws:
IOException- if an error occurs
-
processCursorLeft
processCSI n Dcorresponding toCUB – Cursor Back- Parameters:
count- the count- Throws:
IOException- if an error occurs
-
processCursorRight
processCSI n Ccorresponding toCUF – Cursor Forward- Parameters:
count- the count- Throws:
IOException- if an error occurs
-
processCursorDown
processCSI n Bcorresponding toCUD – Cursor Down- Parameters:
count- the count- Throws:
IOException- if an error occurs
-
processCursorUp
processCSI n Acorresponding toCUU – Cursor Up- Parameters:
count- the count- Throws:
IOException- if an error occurs
-
processUnknownExtension
-
processChangeIconNameAndWindowTitle
processOSC 0;text BELcorresponding toChange Window and Icon label- Parameters:
label- the label
-
processChangeIconName
processOSC 1;text BELcorresponding toChange Icon label- Parameters:
name- the icon name
-
processChangeWindowTitle
processOSC 2;text BELcorresponding toChange Window title- Parameters:
title- the title
-
processUnknownOperatingSystemCommand
Process unknownOSCcommand.- Parameters:
command- the commandparam- the param
-
processCharsetSelect
protected void processCharsetSelect(int set, char seq) -
write
- Overrides:
writein classFilterWriter- Throws:
IOException
-
write
- Overrides:
writein classFilterWriter- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classFilterWriter- Throws:
IOException
-