Sort methods.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/csv/trunk@1560382 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
011510efbd
commit
58233665d0
|
@ -68,15 +68,10 @@ public final class CSVPrinter implements Flushable, Closeable {
|
||||||
// printing implementation
|
// printing implementation
|
||||||
// ======================================================
|
// ======================================================
|
||||||
|
|
||||||
/**
|
public void close() throws IOException {
|
||||||
* Outputs the record separator.
|
if (out instanceof Closeable) {
|
||||||
*
|
((Closeable) out).close();
|
||||||
* @throws IOException
|
}
|
||||||
* If an I/O error occurs
|
|
||||||
*/
|
|
||||||
public void println() throws IOException {
|
|
||||||
out.append(format.getRecordSeparator());
|
|
||||||
newRecord = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -92,77 +87,23 @@ public final class CSVPrinter implements Flushable, Closeable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine
|
* Prints the string as the next value on the line. The value will be escaped or encapsulated as needed.
|
||||||
* characters will be escaped.
|
|
||||||
*
|
*
|
||||||
* @param values
|
* @param value
|
||||||
* values to output.
|
* value to be output.
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* If an I/O error occurs
|
* If an I/O error occurs
|
||||||
*/
|
*/
|
||||||
public void printRecord(final Object... values) throws IOException {
|
public void print(final Object value) throws IOException {
|
||||||
for (final Object value : values) {
|
// null values are considered empty
|
||||||
print(value);
|
String strValue;
|
||||||
|
if (value == null) {
|
||||||
|
final String nullString = format.getNullString();
|
||||||
|
strValue = nullString == null ? Constants.EMPTY : nullString;
|
||||||
|
} else {
|
||||||
|
strValue = value.toString();
|
||||||
}
|
}
|
||||||
println();
|
this.print(value, strValue, 0, strValue.length());
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine
|
|
||||||
* characters will be escaped.
|
|
||||||
*
|
|
||||||
* @param values
|
|
||||||
* values to output.
|
|
||||||
* @throws IOException
|
|
||||||
* If an I/O error occurs
|
|
||||||
*/
|
|
||||||
public void printRecord(final Iterable<?> values) throws IOException {
|
|
||||||
for (final Object value : values) {
|
|
||||||
print(value);
|
|
||||||
}
|
|
||||||
println();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prints a comment on a new line among the delimiter separated values. Comments will always begin on a new line
|
|
||||||
* and occupy a least one full line. The character specified to start comments and a space will be inserted at the
|
|
||||||
* beginning of each new line in the comment.
|
|
||||||
* <p/>
|
|
||||||
* If comments are disabled in the current CSV format this method does nothing.
|
|
||||||
*
|
|
||||||
* @param comment
|
|
||||||
* the comment to output
|
|
||||||
* @throws IOException
|
|
||||||
* If an I/O error occurs
|
|
||||||
*/
|
|
||||||
public void printComment(final String comment) throws IOException {
|
|
||||||
if (!format.isCommentingEnabled()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!newRecord) {
|
|
||||||
println();
|
|
||||||
}
|
|
||||||
out.append(format.getCommentStart().charValue());
|
|
||||||
out.append(SP);
|
|
||||||
for (int i = 0; i < comment.length(); i++) {
|
|
||||||
final char c = comment.charAt(i);
|
|
||||||
switch (c) {
|
|
||||||
case CR:
|
|
||||||
if (i + 1 < comment.length() && comment.charAt(i + 1) == LF) {
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
//$FALL-THROUGH$ break intentionally excluded.
|
|
||||||
case LF:
|
|
||||||
println();
|
|
||||||
out.append(format.getCommentStart().charValue());
|
|
||||||
out.append(SP);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
out.append(c);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
println();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void print(final Object object, final CharSequence value,
|
private void print(final Object object, final CharSequence value,
|
||||||
|
@ -332,34 +273,99 @@ public final class CSVPrinter implements Flushable, Closeable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints the string as the next value on the line. The value will be escaped or encapsulated as needed.
|
* Prints a comment on a new line among the delimiter separated values. Comments will always begin on a new line
|
||||||
|
* and occupy a least one full line. The character specified to start comments and a space will be inserted at the
|
||||||
|
* beginning of each new line in the comment.
|
||||||
|
* <p/>
|
||||||
|
* If comments are disabled in the current CSV format this method does nothing.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param comment
|
||||||
* value to be output.
|
* the comment to output
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* If an I/O error occurs
|
* If an I/O error occurs
|
||||||
*/
|
*/
|
||||||
public void print(final Object value) throws IOException {
|
public void printComment(final String comment) throws IOException {
|
||||||
// null values are considered empty
|
if (!format.isCommentingEnabled()) {
|
||||||
String strValue;
|
return;
|
||||||
if (value == null) {
|
|
||||||
final String nullString = format.getNullString();
|
|
||||||
strValue = nullString == null ? Constants.EMPTY : nullString;
|
|
||||||
} else {
|
|
||||||
strValue = value.toString();
|
|
||||||
}
|
}
|
||||||
this.print(value, strValue, 0, strValue.length());
|
if (!newRecord) {
|
||||||
|
println();
|
||||||
|
}
|
||||||
|
out.append(format.getCommentStart().charValue());
|
||||||
|
out.append(SP);
|
||||||
|
for (int i = 0; i < comment.length(); i++) {
|
||||||
|
final char c = comment.charAt(i);
|
||||||
|
switch (c) {
|
||||||
|
case CR:
|
||||||
|
if (i + 1 < comment.length() && comment.charAt(i + 1) == LF) {
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
//$FALL-THROUGH$ break intentionally excluded.
|
||||||
|
case LF:
|
||||||
|
println();
|
||||||
|
out.append(format.getCommentStart().charValue());
|
||||||
|
out.append(SP);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
out.append(c);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints all the objects in the given array.
|
* Outputs the record separator.
|
||||||
|
*
|
||||||
|
* @throws IOException
|
||||||
|
* If an I/O error occurs
|
||||||
|
*/
|
||||||
|
public void println() throws IOException {
|
||||||
|
out.append(format.getRecordSeparator());
|
||||||
|
newRecord = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine
|
||||||
|
* characters will be escaped.
|
||||||
|
*
|
||||||
|
* @param values
|
||||||
|
* values to output.
|
||||||
|
* @throws IOException
|
||||||
|
* If an I/O error occurs
|
||||||
|
*/
|
||||||
|
public void printRecord(final Iterable<?> values) throws IOException {
|
||||||
|
for (final Object value : values) {
|
||||||
|
print(value);
|
||||||
|
}
|
||||||
|
println();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints a single line of delimiter separated values. The values will be quoted if needed. Quotes and newLine
|
||||||
|
* characters will be escaped.
|
||||||
|
*
|
||||||
|
* @param values
|
||||||
|
* values to output.
|
||||||
|
* @throws IOException
|
||||||
|
* If an I/O error occurs
|
||||||
|
*/
|
||||||
|
public void printRecord(final Object... values) throws IOException {
|
||||||
|
for (final Object value : values) {
|
||||||
|
print(value);
|
||||||
|
}
|
||||||
|
println();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints all the objects in the given collection.
|
||||||
*
|
*
|
||||||
* @param values
|
* @param values
|
||||||
* the values to print.
|
* the values to print.
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* If an I/O error occurs
|
* If an I/O error occurs
|
||||||
*/
|
*/
|
||||||
public void printRecords(final Object[] values) throws IOException {
|
public void printRecords(final Iterable<?> values) throws IOException {
|
||||||
for (final Object value : values) {
|
for (final Object value : values) {
|
||||||
if (value instanceof Object[]) {
|
if (value instanceof Object[]) {
|
||||||
this.printRecord((Object[]) value);
|
this.printRecord((Object[]) value);
|
||||||
|
@ -372,14 +378,14 @@ public final class CSVPrinter implements Flushable, Closeable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints all the objects in the given collection.
|
* Prints all the objects in the given array.
|
||||||
*
|
*
|
||||||
* @param values
|
* @param values
|
||||||
* the values to print.
|
* the values to print.
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* If an I/O error occurs
|
* If an I/O error occurs
|
||||||
*/
|
*/
|
||||||
public void printRecords(final Iterable<?> values) throws IOException {
|
public void printRecords(final Object[] values) throws IOException {
|
||||||
for (final Object value : values) {
|
for (final Object value : values) {
|
||||||
if (value instanceof Object[]) {
|
if (value instanceof Object[]) {
|
||||||
this.printRecord((Object[]) value);
|
this.printRecord((Object[]) value);
|
||||||
|
@ -409,10 +415,4 @@ public final class CSVPrinter implements Flushable, Closeable {
|
||||||
println();
|
println();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void close() throws IOException {
|
|
||||||
if (out instanceof Closeable) {
|
|
||||||
((Closeable) out).close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue