add methods

This commit is contained in:
Looly 2024-06-14 01:15:48 +08:00
parent c3aabfcd14
commit 0a788ba961

View File

@ -143,8 +143,8 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
public CsvWriter(final File file, final Charset charset, final boolean isAppend, final CsvWriteConfig config) { public CsvWriter(final File file, final Charset charset, final boolean isAppend, final CsvWriteConfig config) {
this(FileUtil.getWriter(file, charset, isAppend), this(FileUtil.getWriter(file, charset, isAppend),
// https://gitee.com/dromara/hutool/pulls/1011 // https://gitee.com/dromara/hutool/pulls/1011
isAppend?(config==null?CsvWriteConfig.defaultConfig().setEndingLineBreak(true) isAppend ? (config == null ? CsvWriteConfig.defaultConfig().setEndingLineBreak(true)
:config.setEndingLineBreak(true)):config); : config.setEndingLineBreak(true)) : config);
} }
/** /**
@ -255,14 +255,26 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
/** /**
* 将一个Bean集合写出到Writer并自动生成表头 * 将一个Bean集合写出到Writer并自动生成表头
* *
* @param beans Bean集合 * @param beans Bean集合
* @param properties 可选属性列表空表示全部属性 * @param properties 可选属性列表空表示全部属性
* @return this * @return this
*/ */
@SuppressWarnings("resource")
public CsvWriter writeBeans(final Iterable<?> beans, final String... properties) { public CsvWriter writeBeans(final Iterable<?> beans, final String... properties) {
return writeBeans(beans, true, properties);
}
/**
* 将一个Bean集合写出到Writer并自动生成表头
*
* @param beans Bean集合
* @param writeHeaderLine 是否写出表头即Bean的字段名称列表作为首行
* @param properties 可选属性列表空表示全部属性
* @return this
*/
@SuppressWarnings("resource")
public CsvWriter writeBeans(final Iterable<?> beans, final boolean writeHeaderLine, final String... properties) {
if (CollUtil.isNotEmpty(beans)) { if (CollUtil.isNotEmpty(beans)) {
boolean isFirst = true; boolean isFirst = writeHeaderLine;
Map<String, Object> map; Map<String, Object> map;
for (final Object bean : beans) { for (final Object bean : beans) {
map = BeanUtil.beanToMap(bean, properties); map = BeanUtil.beanToMap(bean, properties);
@ -362,7 +374,7 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
@SuppressWarnings("resource") @SuppressWarnings("resource")
@Override @Override
public void close() { public void close() {
if(this.config.endingLineBreak){ if (this.config.endingLineBreak) {
writeLine(); writeLine();
} }
IoUtil.closeQuietly(this.writer); IoUtil.closeQuietly(this.writer);
@ -496,9 +508,9 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
*/ */
private static boolean isDDEUnsafeChar(final char c) { private static boolean isDDEUnsafeChar(final char c) {
return c == CharUtil.AT || return c == CharUtil.AT ||
c == CharUtil.PLUS || c == CharUtil.PLUS ||
c == CharUtil.DASHED || c == CharUtil.DASHED ||
c == CharUtil.EQUAL; c == CharUtil.EQUAL;
} }
// --------------------------------------------------------------------------------------------------- Private method end // --------------------------------------------------------------------------------------------------- Private method end
} }