Package org.geotools.util
Class LineWriter
- Object
-
- Writer
-
- FilterWriter
-
- LineWriter
-
- All Implemented Interfaces:
Closeable
,Flushable
,Appendable
,AutoCloseable
public class LineWriter extends FilterWriter
Writes characters to a stream while replacing various EOL by a unique string. This class catches all occurrences of"\r"
,"\n"
and"\r\n"
, and replaces them by the platform depend EOL string ("\r\n"
on Windows,"\n"
on Unix), or any other EOL explicitly set at construction time. This writer also remove trailing blanks before end of lines, but this behavior can be changed by overridingisWhitespace(char)
.- Since:
- 2.0
- Author:
- Martin Desruisseaux (IRD)
-
-
Field Summary
-
Fields inherited from class FilterWriter
out
-
-
Constructor Summary
Constructors Constructor Description LineWriter(Writer out)
Constructs aLineWriter
object that will use the platform dependent line separator.LineWriter(Writer out, String lineSeparator)
Constructs aLineWriter
object that will use the specified line separator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
flush()
Flushs the stream's content to the underlying stream.String
getLineSeparator()
Returns the current line separator.protected boolean
isWhitespace(char c)
Returnstrue
if the specified character is a white space that can be ignored on end of line.void
setLineSeparator(String lineSeparator)
Changes the line separator.void
write(char[] cbuf, int offset, int length)
Writes a portion of an array of characters.void
write(int c)
Writes a single character.void
write(String string, int offset, int length)
Writes a portion of an array of a string.-
Methods inherited from class FilterWriter
close
-
-
-
-
Constructor Detail
-
LineWriter
public LineWriter(Writer out)
Constructs aLineWriter
object that will use the platform dependent line separator.- Parameters:
out
- A writer object to provide the underlying stream.- Throws:
IllegalArgumentException
- ifout
isnull
.
-
LineWriter
public LineWriter(Writer out, String lineSeparator)
Constructs aLineWriter
object that will use the specified line separator.- Parameters:
out
- A writer object to provide the underlying stream.lineSeparator
- String to use as line separator.- Throws:
IllegalArgumentException
- ifout
orlineSeparator
isnull
.
-
-
Method Detail
-
getLineSeparator
public String getLineSeparator()
Returns the current line separator.- Returns:
- The current line separator.
-
setLineSeparator
public void setLineSeparator(String lineSeparator)
Changes the line separator. This is the string to insert in place of every occurences of"\r"
,"\n"
or"\r\n"
.- Parameters:
lineSeparator
- The new line separator.- Throws:
IllegalArgumentException
- IflineSeparator
isnull
.
-
write
public void write(int c) throws IOException
Writes a single character.- Overrides:
write
in classFilterWriter
- Throws:
IOException
- If an I/O error occurs.
-
write
public void write(char[] cbuf, int offset, int length) throws IOException
Writes a portion of an array of characters.- Overrides:
write
in classFilterWriter
- Parameters:
cbuf
- Buffer of characters to be written.offset
- Offset from which to start reading characters.length
- Number of characters to be written.- Throws:
IOException
- If an I/O error occurs.
-
write
public void write(String string, int offset, int length) throws IOException
Writes a portion of an array of a string.- Overrides:
write
in classFilterWriter
- Parameters:
string
- String to be written.offset
- Offset from which to start reading characters.length
- Number of characters to be written.- Throws:
IOException
- If an I/O error occurs.
-
flush
public void flush() throws IOException
Flushs the stream's content to the underlying stream. This method flush completly all internal buffers, including any whitespace characters that should have been skipped if the next non-blank character is a line separator.- Specified by:
flush
in interfaceFlushable
- Overrides:
flush
in classFilterWriter
- Throws:
IOException
- If an I/O error occurs.
-
isWhitespace
protected boolean isWhitespace(char c) throws IOException
Returnstrue
if the specified character is a white space that can be ignored on end of line. The default implementation returnsCharacter.isSpaceChar(char)
. Subclasses can override this method in order to change the criterion.- Parameters:
c
- The character to test.- Returns:
true
ifc
is a character that can be ignored on end of line.- Throws:
IOException
- if this method can not determine if the character is ignoreable.- Since:
- 2.5
-
-