Package org.fusesource.jansi
Class AnsiPrintStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.io.PrintStream
-
- org.fusesource.jansi.FilterPrintStream
-
- org.fusesource.jansi.AnsiPrintStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.Appendable
,java.lang.AutoCloseable
public class AnsiPrintStream extends FilterPrintStream
A ANSI print stream extracts ANSI escape codes written to a print stream and calls correspondingprocess*
methods.For more information about ANSI escape codes, see Wikipedia article
This class just filters out the escape codes so that they are not sent out to the underlying OutputStream:
process*
methods are empty. Subclasses should actually perform the ANSI escape behaviors by implementing active code inprocess*
methods.- Since:
- 1.7
- See Also:
AnsiOutputStream
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
ATTRIBUTE_BLINK_FAST
protected static int
ATTRIBUTE_BLINK_OFF
protected static int
ATTRIBUTE_BLINK_SLOW
protected static int
ATTRIBUTE_CONCEAL_OFF
protected static int
ATTRIBUTE_CONCEAL_ON
protected static int
ATTRIBUTE_INTENSITY_BOLD
protected static int
ATTRIBUTE_INTENSITY_FAINT
protected static int
ATTRIBUTE_INTENSITY_NORMAL
protected static int
ATTRIBUTE_ITALIC
protected static int
ATTRIBUTE_NEGATIVE_Off
Deprecated.protected static int
ATTRIBUTE_NEGATIVE_OFF
protected static int
ATTRIBUTE_NEGATIVE_ON
protected static int
ATTRIBUTE_UNDERLINE
protected static int
ATTRIBUTE_UNDERLINE_DOUBLE
protected static int
ATTRIBUTE_UNDERLINE_OFF
private static int
BEL
protected static int
BLACK
protected static int
BLUE
private byte[]
buffer
protected static int
CYAN
protected static int
ERASE_LINE
protected static int
ERASE_LINE_TO_BEGINING
protected static int
ERASE_LINE_TO_END
protected static int
ERASE_SCREEN
protected static int
ERASE_SCREEN_TO_BEGINING
protected static int
ERASE_SCREEN_TO_END
private static int
FIRST_ESC_CHAR
protected static int
GREEN
private static int
LOOKING_FOR_CHARSET
private static int
LOOKING_FOR_FIRST_ESC_CHAR
private static int
LOOKING_FOR_INT_ARG_END
private static int
LOOKING_FOR_NEXT_ARG
private static int
LOOKING_FOR_OSC_COMMAND
private static int
LOOKING_FOR_OSC_COMMAND_END
private static int
LOOKING_FOR_OSC_PARAM
private static int
LOOKING_FOR_SECOND_ESC_CHAR
private static int
LOOKING_FOR_ST
private static int
LOOKING_FOR_STR_ARG_END
protected static int
MAGENTA
private static int
MAX_ESCAPE_SEQUENCE_LENGTH
private java.util.ArrayList<java.lang.Object>
options
private int
pos
protected static int
RED
static java.lang.String
RESET_CODE
private static int
SECOND_CHARSET0_CHAR
private static int
SECOND_CHARSET1_CHAR
private static int
SECOND_ESC_CHAR
private static int
SECOND_OSC_CHAR
private static int
SECOND_ST_CHAR
private int
startOfValue
(package private) int
state
protected static int
WHITE
protected static int
YELLOW
-
Fields inherited from class org.fusesource.jansi.FilterPrintStream
ps
-
-
Constructor Summary
Constructors Constructor Description AnsiPrintStream(java.io.PrintStream ps)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
protected boolean
filter(int data)
Filter the contentprivate int
getNextOptionInt(java.util.Iterator<java.lang.Object> optionsIterator)
Helper for processEscapeCommand() to iterate over integer optionsprivate int
optionInt(java.util.ArrayList<java.lang.Object> options, int index)
private int
optionInt(java.util.ArrayList<java.lang.Object> options, int index, int defaultValue)
protected void
processAttributeRest()
processSGR 0
corresponding toReset / Normal
protected void
processChangeIconName(java.lang.String label)
processOSC 1;text BEL
corresponding toChange Icon label
protected void
processChangeIconNameAndWindowTitle(java.lang.String label)
processOSC 0;text BEL
corresponding toChange Window and Icon label
protected void
processChangeWindowTitle(java.lang.String label)
processOSC 2;text BEL
corresponding toChange Window title
protected void
processCharsetSelect(int set, char seq)
private boolean
processCharsetSelect(java.util.ArrayList<java.lang.Object> options)
Process character set sequence.protected void
processCursorDown(int count)
processCSI n B
corresponding toCUD – Cursor Down
protected void
processCursorDownLine(int count)
processCSI n E
corresponding toCNL – Cursor Next Line
protected void
processCursorLeft(int count)
processCSI n D
corresponding toCUB – Cursor Back
protected void
processCursorRight(int count)
processCSI n C
corresponding toCUF – Cursor Forward
protected void
processCursorTo(int row, int col)
processCSI n ; m H
corresponding toCUP – Cursor Position
orCSI n ; m f
corresponding toHVP – Horizontal and Vertical Position
protected void
processCursorToColumn(int x)
processCSI n G
corresponding toCHA – Cursor Horizontal Absolute
protected void
processCursorUp(int count)
processCSI n A
corresponding toCUU – Cursor Up
protected void
processCursorUpLine(int count)
processCSI n F
corresponding toCPL – Cursor Previous Line
protected void
processDefaultBackgroundColor()
processSGR 49
corresponding toDefault background color
protected void
processDefaultTextColor()
processSGR 39
corresponding toDefault text color (foreground)
protected void
processDeleteLine(int optionInt)
ProcessCSI M
ANSI code, corresponding toDL – Delete Line
protected void
processEraseLine(int eraseOption)
ProcessCSI n K
ANSI code, corresponding toED – Erase in Line
protected void
processEraseScreen(int eraseOption)
ProcessCSI n J
ANSI code, corresponding toED – Erase in Display
private boolean
processEscapeCommand(java.util.ArrayList<java.lang.Object> options, int command)
protected void
processInsertLine(int optionInt)
ProcessCSI L
ANSI code, corresponding toIL – Insert Line
private boolean
processOperatingSystemCommand(java.util.ArrayList<java.lang.Object> options)
protected void
processRestoreCursorPosition()
ProcessCSI u
ANSI code, corresponding toRCP – Restore Cursor Position
protected void
processSaveCursorPosition()
ProcessCSI s
ANSI code, corresponding toSCP – Save Cursor Position
protected void
processScrollDown(int optionInt)
ProcessCSI n T
ANSI code, corresponding toSD – Scroll Down
protected void
processScrollUp(int optionInt)
ProcessCSI n U
ANSI code, corresponding toSU – Scroll Up
protected void
processSetAttribute(int attribute)
processSGR
other than0
(reset),30-39
(foreground),40-49
(background),90-97
(foreground high intensity) or100-107
(background high intensity)protected void
processSetBackgroundColor(int color)
processSGR 40-47
corresponding toSet background color
.protected void
processSetBackgroundColor(int color, boolean bright)
processSGR 40-47
orSGR 100-107
corresponding toSet background color
either in normal mode or high intensity.protected void
processSetBackgroundColorExt(int paletteIndex)
processSGR 48
corresponding toextended set background color
with a palette of 255 colors.protected void
processSetBackgroundColorExt(int r, int g, int b)
processSGR 48
corresponding toextended set background color
with a 24 bits RGB definition of the color.protected void
processSetForegroundColor(int color)
processSGR 30-37
corresponding toSet text color (foreground)
.protected void
processSetForegroundColor(int color, boolean bright)
processSGR 30-37
orSGR 90-97
corresponding toSet text color (foreground)
either in normal mode or high intensity.protected void
processSetForegroundColorExt(int paletteIndex)
processSGR 38
corresponding toextended set text color (foreground)
with a palette of 255 colors.protected void
processSetForegroundColorExt(int r, int g, int b)
processSGR 38
corresponding toextended set text color (foreground)
with a 24 bits RGB definition of the color.protected void
processUnknownExtension(java.util.ArrayList<java.lang.Object> options, int command)
Process Unknown Extensionprotected void
processUnknownOperatingSystemCommand(int command, java.lang.String param)
Process unknownOSC
command.private void
reset(boolean skipBuffer)
Resets all state to continue with regular parsing-
Methods inherited from class org.fusesource.jansi.FilterPrintStream
checkError, flush, print, print, print, print, print, print, print, print, print, println, println, println, println, println, println, println, println, println, println, write, write
-
-
-
-
Field Detail
-
RESET_CODE
public static final java.lang.String RESET_CODE
- See Also:
- Constant Field Values
-
MAX_ESCAPE_SEQUENCE_LENGTH
private static final int MAX_ESCAPE_SEQUENCE_LENGTH
- See Also:
- Constant Field Values
-
buffer
private final byte[] buffer
-
pos
private int pos
-
startOfValue
private int startOfValue
-
options
private final java.util.ArrayList<java.lang.Object> options
-
LOOKING_FOR_FIRST_ESC_CHAR
private static final int LOOKING_FOR_FIRST_ESC_CHAR
- See Also:
- Constant Field Values
-
LOOKING_FOR_SECOND_ESC_CHAR
private static final int LOOKING_FOR_SECOND_ESC_CHAR
- See Also:
- Constant Field Values
-
LOOKING_FOR_NEXT_ARG
private static final int LOOKING_FOR_NEXT_ARG
- See Also:
- Constant Field Values
-
LOOKING_FOR_STR_ARG_END
private static final int LOOKING_FOR_STR_ARG_END
- See Also:
- Constant Field Values
-
LOOKING_FOR_INT_ARG_END
private static final int LOOKING_FOR_INT_ARG_END
- See Also:
- Constant Field Values
-
LOOKING_FOR_OSC_COMMAND
private static final int LOOKING_FOR_OSC_COMMAND
- See Also:
- Constant Field Values
-
LOOKING_FOR_OSC_COMMAND_END
private static final int LOOKING_FOR_OSC_COMMAND_END
- See Also:
- Constant Field Values
-
LOOKING_FOR_OSC_PARAM
private static final int LOOKING_FOR_OSC_PARAM
- See Also:
- Constant Field Values
-
LOOKING_FOR_ST
private static final int LOOKING_FOR_ST
- See Also:
- Constant Field Values
-
LOOKING_FOR_CHARSET
private static final int LOOKING_FOR_CHARSET
- See Also:
- Constant Field Values
-
state
int state
-
FIRST_ESC_CHAR
private static final int FIRST_ESC_CHAR
- See Also:
- Constant Field Values
-
SECOND_ESC_CHAR
private static final int SECOND_ESC_CHAR
- See Also:
- Constant Field Values
-
SECOND_OSC_CHAR
private static final int SECOND_OSC_CHAR
- See Also:
- Constant Field Values
-
BEL
private static final int BEL
- See Also:
- Constant Field Values
-
SECOND_ST_CHAR
private static final int SECOND_ST_CHAR
- See Also:
- Constant Field Values
-
SECOND_CHARSET0_CHAR
private static final int SECOND_CHARSET0_CHAR
- See Also:
- Constant Field Values
-
SECOND_CHARSET1_CHAR
private static final int SECOND_CHARSET1_CHAR
- See Also:
- Constant Field Values
-
ERASE_SCREEN_TO_END
protected static final int ERASE_SCREEN_TO_END
- See Also:
- Constant Field Values
-
ERASE_SCREEN_TO_BEGINING
protected static final int ERASE_SCREEN_TO_BEGINING
- See Also:
- Constant Field Values
-
ERASE_SCREEN
protected static final int ERASE_SCREEN
- See Also:
- Constant Field Values
-
ERASE_LINE_TO_END
protected static final int ERASE_LINE_TO_END
- See Also:
- Constant Field Values
-
ERASE_LINE_TO_BEGINING
protected static final int ERASE_LINE_TO_BEGINING
- See Also:
- Constant Field Values
-
ERASE_LINE
protected static final int ERASE_LINE
- See Also:
- Constant Field Values
-
ATTRIBUTE_INTENSITY_BOLD
protected static final int ATTRIBUTE_INTENSITY_BOLD
- See Also:
- Constant Field Values
-
ATTRIBUTE_INTENSITY_FAINT
protected static final int ATTRIBUTE_INTENSITY_FAINT
- See Also:
- Constant Field Values
-
ATTRIBUTE_ITALIC
protected static final int ATTRIBUTE_ITALIC
- See Also:
- Constant Field Values
-
ATTRIBUTE_UNDERLINE
protected static final int ATTRIBUTE_UNDERLINE
- See Also:
- Constant Field Values
-
ATTRIBUTE_BLINK_SLOW
protected static final int ATTRIBUTE_BLINK_SLOW
- See Also:
- Constant Field Values
-
ATTRIBUTE_BLINK_FAST
protected static final int ATTRIBUTE_BLINK_FAST
- See Also:
- Constant Field Values
-
ATTRIBUTE_NEGATIVE_ON
protected static final int ATTRIBUTE_NEGATIVE_ON
- See Also:
- Constant Field Values
-
ATTRIBUTE_CONCEAL_ON
protected static final int ATTRIBUTE_CONCEAL_ON
- See Also:
- Constant Field Values
-
ATTRIBUTE_UNDERLINE_DOUBLE
protected static final int ATTRIBUTE_UNDERLINE_DOUBLE
- See Also:
- Constant Field Values
-
ATTRIBUTE_INTENSITY_NORMAL
protected static final int ATTRIBUTE_INTENSITY_NORMAL
- See Also:
- Constant Field Values
-
ATTRIBUTE_UNDERLINE_OFF
protected static final int ATTRIBUTE_UNDERLINE_OFF
- See Also:
- Constant Field Values
-
ATTRIBUTE_BLINK_OFF
protected static final int ATTRIBUTE_BLINK_OFF
- See Also:
- Constant Field Values
-
ATTRIBUTE_NEGATIVE_Off
@Deprecated protected static final int ATTRIBUTE_NEGATIVE_Off
Deprecated.- See Also:
- Constant Field Values
-
ATTRIBUTE_NEGATIVE_OFF
protected static final int ATTRIBUTE_NEGATIVE_OFF
- See Also:
- Constant Field Values
-
ATTRIBUTE_CONCEAL_OFF
protected static final int ATTRIBUTE_CONCEAL_OFF
- See Also:
- Constant Field Values
-
BLACK
protected static final int BLACK
- See Also:
- Constant Field Values
-
RED
protected static final int RED
- See Also:
- Constant Field Values
-
GREEN
protected static final int GREEN
- See Also:
- Constant Field Values
-
YELLOW
protected static final int YELLOW
- See Also:
- Constant Field Values
-
BLUE
protected static final int BLUE
- See Also:
- Constant Field Values
-
MAGENTA
protected static final int MAGENTA
- See Also:
- Constant Field Values
-
CYAN
protected static final int CYAN
- See Also:
- Constant Field Values
-
WHITE
protected static final int WHITE
- See Also:
- Constant Field Values
-
-
Method Detail
-
filter
protected boolean filter(int data)
Description copied from class:FilterPrintStream
Filter the content- Overrides:
filter
in classFilterPrintStream
- Parameters:
data
- character to filter- Returns:
true
if the data is not filtered then has to be printed to delegate PrintStream
-
reset
private void reset(boolean skipBuffer)
Resets all state to continue with regular parsing- Parameters:
skipBuffer
- if current buffer should be skipped or written to out
-
getNextOptionInt
private int getNextOptionInt(java.util.Iterator<java.lang.Object> optionsIterator) throws java.io.IOException
Helper for processEscapeCommand() to iterate over integer options- Parameters:
optionsIterator
- the underlying iterator- Throws:
java.io.IOException
- if no more non-null values left
-
processEscapeCommand
private boolean processEscapeCommand(java.util.ArrayList<java.lang.Object> options, int command)
- Parameters:
options
-command
-- Returns:
- true if the escape command was processed.
-
processOperatingSystemCommand
private boolean processOperatingSystemCommand(java.util.ArrayList<java.lang.Object> options)
- Parameters:
options
-- Returns:
- true if the operating system command was processed.
-
processRestoreCursorPosition
protected void processRestoreCursorPosition() throws java.io.IOException
ProcessCSI u
ANSI code, corresponding toRCP – Restore Cursor Position
- Throws:
java.io.IOException
- IOException
-
processSaveCursorPosition
protected void processSaveCursorPosition() throws java.io.IOException
ProcessCSI s
ANSI code, corresponding toSCP – Save Cursor Position
- Throws:
java.io.IOException
- IOException
-
processInsertLine
protected void processInsertLine(int optionInt) throws java.io.IOException
ProcessCSI L
ANSI code, corresponding toIL – Insert Line
- Parameters:
optionInt
- option- Throws:
java.io.IOException
- IOException- Since:
- 1.16
-
processDeleteLine
protected void processDeleteLine(int optionInt) throws java.io.IOException
ProcessCSI M
ANSI code, corresponding toDL – Delete Line
- Parameters:
optionInt
- option- Throws:
java.io.IOException
- IOException- Since:
- 1.16
-
processScrollDown
protected void processScrollDown(int optionInt) throws java.io.IOException
ProcessCSI n T
ANSI code, corresponding toSD – Scroll Down
- Parameters:
optionInt
- option- Throws:
java.io.IOException
- IOException
-
processScrollUp
protected void processScrollUp(int optionInt) throws java.io.IOException
ProcessCSI n U
ANSI code, corresponding toSU – Scroll Up
- Parameters:
optionInt
- option- Throws:
java.io.IOException
- IOException
-
processEraseScreen
protected void processEraseScreen(int eraseOption) throws java.io.IOException
ProcessCSI n J
ANSI code, corresponding toED – Erase in Display
- Parameters:
eraseOption
- eraseOption- Throws:
java.io.IOException
- IOException
-
processEraseLine
protected void processEraseLine(int eraseOption) throws java.io.IOException
ProcessCSI n K
ANSI code, corresponding toED – Erase in Line
- Parameters:
eraseOption
- eraseOption- Throws:
java.io.IOException
- IOException
-
processSetAttribute
protected void processSetAttribute(int attribute) throws java.io.IOException
processSGR
other than0
(reset),30-39
(foreground),40-49
(background),90-97
(foreground high intensity) or100-107
(background high intensity)- Parameters:
attribute
- attribute- Throws:
java.io.IOException
- IOException- See Also:
processAttributeRest()
,processSetForegroundColor(int)
,processSetForegroundColor(int, boolean)
,processSetForegroundColorExt(int)
,processSetForegroundColorExt(int, int, int)
,processDefaultTextColor()
,processDefaultBackgroundColor()
-
processSetForegroundColor
protected void processSetForegroundColor(int color) throws java.io.IOException
processSGR 30-37
corresponding toSet text color (foreground)
.- Parameters:
color
- the text color- Throws:
java.io.IOException
- IOException
-
processSetForegroundColor
protected void processSetForegroundColor(int color, boolean bright) throws java.io.IOException
processSGR 30-37
orSGR 90-97
corresponding toSet text color (foreground)
either in normal mode or high intensity.- Parameters:
color
- the text colorbright
- is high intensity?- Throws:
java.io.IOException
- IOException
-
processSetForegroundColorExt
protected void processSetForegroundColorExt(int paletteIndex) throws java.io.IOException
processSGR 38
corresponding toextended set text color (foreground)
with a palette of 255 colors.- Parameters:
paletteIndex
- the text color in the palette- Throws:
java.io.IOException
- IOException
-
processSetForegroundColorExt
protected void processSetForegroundColorExt(int r, int g, int b) throws java.io.IOException
processSGR 38
corresponding toextended set text color (foreground)
with a 24 bits RGB definition of the color.- Parameters:
r
- redg
- greenb
- blue- Throws:
java.io.IOException
- IOException
-
processSetBackgroundColor
protected void processSetBackgroundColor(int color) throws java.io.IOException
processSGR 40-47
corresponding toSet background color
.- Parameters:
color
- the background color- Throws:
java.io.IOException
- IOException
-
processSetBackgroundColor
protected void processSetBackgroundColor(int color, boolean bright) throws java.io.IOException
processSGR 40-47
orSGR 100-107
corresponding toSet background color
either in normal mode or high intensity.- Parameters:
color
- the background colorbright
- is high intensity?- Throws:
java.io.IOException
- IOException
-
processSetBackgroundColorExt
protected void processSetBackgroundColorExt(int paletteIndex) throws java.io.IOException
processSGR 48
corresponding toextended set background color
with a palette of 255 colors.- Parameters:
paletteIndex
- the background color in the palette- Throws:
java.io.IOException
- IOException
-
processSetBackgroundColorExt
protected void processSetBackgroundColorExt(int r, int g, int b) throws java.io.IOException
processSGR 48
corresponding toextended set background color
with a 24 bits RGB definition of the color.- Parameters:
r
- redg
- greenb
- blue- Throws:
java.io.IOException
- IOException
-
processDefaultTextColor
protected void processDefaultTextColor() throws java.io.IOException
processSGR 39
corresponding toDefault text color (foreground)
- Throws:
java.io.IOException
- IOException
-
processDefaultBackgroundColor
protected void processDefaultBackgroundColor() throws java.io.IOException
processSGR 49
corresponding toDefault background color
- Throws:
java.io.IOException
- IOException
-
processAttributeRest
protected void processAttributeRest() throws java.io.IOException
processSGR 0
corresponding toReset / Normal
- Throws:
java.io.IOException
- IOException
-
processCursorTo
protected void processCursorTo(int row, int col) throws java.io.IOException
processCSI n ; m H
corresponding toCUP – Cursor Position
orCSI n ; m f
corresponding toHVP – Horizontal and Vertical Position
- Parameters:
row
- rowcol
- col- Throws:
java.io.IOException
- IOException
-
processCursorToColumn
protected void processCursorToColumn(int x) throws java.io.IOException
processCSI n G
corresponding toCHA – Cursor Horizontal Absolute
- Parameters:
x
- the column- Throws:
java.io.IOException
- IOException
-
processCursorUpLine
protected void processCursorUpLine(int count) throws java.io.IOException
processCSI n F
corresponding toCPL – Cursor Previous Line
- Parameters:
count
- line count- Throws:
java.io.IOException
- IOException
-
processCursorDownLine
protected void processCursorDownLine(int count) throws java.io.IOException
processCSI n E
corresponding toCNL – Cursor Next Line
- Parameters:
count
- line count- Throws:
java.io.IOException
- IOException
-
processCursorLeft
protected void processCursorLeft(int count) throws java.io.IOException
processCSI n D
corresponding toCUB – Cursor Back
- Parameters:
count
- count- Throws:
java.io.IOException
- IOException
-
processCursorRight
protected void processCursorRight(int count) throws java.io.IOException
processCSI n C
corresponding toCUF – Cursor Forward
- Parameters:
count
- count- Throws:
java.io.IOException
- IOException
-
processCursorDown
protected void processCursorDown(int count) throws java.io.IOException
processCSI n B
corresponding toCUD – Cursor Down
- Parameters:
count
- count- Throws:
java.io.IOException
- IOException
-
processCursorUp
protected void processCursorUp(int count) throws java.io.IOException
processCSI n A
corresponding toCUU – Cursor Up
- Parameters:
count
- count- Throws:
java.io.IOException
- IOException
-
processUnknownExtension
protected void processUnknownExtension(java.util.ArrayList<java.lang.Object> options, int command)
Process Unknown Extension- Parameters:
options
- optionscommand
- command
-
processChangeIconNameAndWindowTitle
protected void processChangeIconNameAndWindowTitle(java.lang.String label)
processOSC 0;text BEL
corresponding toChange Window and Icon label
- Parameters:
label
- window title name
-
processChangeIconName
protected void processChangeIconName(java.lang.String label)
processOSC 1;text BEL
corresponding toChange Icon label
- Parameters:
label
- icon label
-
processChangeWindowTitle
protected void processChangeWindowTitle(java.lang.String label)
processOSC 2;text BEL
corresponding toChange Window title
- Parameters:
label
- window title text
-
processUnknownOperatingSystemCommand
protected void processUnknownOperatingSystemCommand(int command, java.lang.String param)
Process unknownOSC
command.- Parameters:
command
- commandparam
- param
-
processCharsetSelect
private boolean processCharsetSelect(java.util.ArrayList<java.lang.Object> options)
Process character set sequence.- Parameters:
options
- options- Returns:
- true if the charcter set select command was processed.
-
processCharsetSelect
protected void processCharsetSelect(int set, char seq)
-
optionInt
private int optionInt(java.util.ArrayList<java.lang.Object> options, int index)
-
optionInt
private int optionInt(java.util.ArrayList<java.lang.Object> options, int index, int defaultValue)
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classFilterPrintStream
-
-