本文整理汇总了Java中com.github.trang.copiers.inter.Copier类的典型用法代码示例。如果您正苦于以下问题:Java Copier类的具体用法?Java Copier怎么用?Java Copier使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Copier类属于com.github.trang.copiers.inter包,在下文中一共展示了Copier类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: toList
import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
* 将 CSV 文件写入到数据库
*
* @param file 读取的文件
* @param sourceClass 文件读取时对应的Bean
* @param targetClass 写入数据库时对应的Bean
* @return beanList
*/
@SneakyThrows(IOException.class)
public static <F, T> List<T> toList(Path file, Class<F> sourceClass, Class<T> targetClass) {
try (InputStream is = Files.newInputStream(file, READ)) {
//CSV转换List处理器
BeanListProcessor<F> beanProcessor = new BeanListProcessor<>(sourceClass);
//CSV转换设置
CsvParserSettings settings = Csv.parseExcel();
//设置处理器
settings.setProcessor(beanProcessor);
//设置文件标题
settings.setHeaderExtractionEnabled(true);
CsvParser parser = new CsvParser(settings);
//读取CSV文件,Excel默认使用ANSI保存,Windows下为GBK
//http://blog.sina.com.cn/s/blog_888269b20100wvos.html
try (InputStreamReader reader = new InputStreamReader(is)) {
//开始转换
parser.parse(reader);
}
Copier<F, T> copier = Copiers.create(sourceClass, targetClass);
return beanProcessor.getBeans().parallelStream().map(copier::copy).collect(Collectors.toList());
}
}
示例2: toFile
import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
* 将数据库的数据导出为CSV
*
* @param file 导出的文件
* @param sourceClass 读取数据库数据时对应的Bean
* @param targetClass 写入文件时对应的Bean
* @param sourceList 数据库查到的数据
*/
@SneakyThrows(IOException.class)
public static <F, T> void toFile(Path file, Class<F> sourceClass, Class<T> targetClass, List<F> sourceList) {
if (Files.notExists(file)) {
Files.createFile(file);
}
Copier<F, T> copier = Copiers.create(sourceClass, targetClass);
List<T> data = sourceList.parallelStream().map(copier::copy).collect(Collectors.toList());
//List转换CSV处理器
BeanWriterProcessor<T> writerProcessor = new BeanWriterProcessor<>(targetClass);
writerProcessor.setStrictHeaderValidationEnabled(true);
//CSV写入设置
CsvWriterSettings settings = Csv.writeExcel();
//设置处理器
settings.setRowWriterProcessor(writerProcessor);
try (OutputStream os = Files.newOutputStream(file, CREATE, TRUNCATE_EXISTING, WRITE);
OutputStreamWriter osw = new OutputStreamWriter(os)) {
CsvWriter writer = new CsvWriter(osw, settings);
writer.processRecordsAndClose(data);
}
}
示例3: register
import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
* 构建执行拷贝的 Copier
*
* @return copier
*/
public Copier<F, T> register() {
return new MapperCopier<>(builder);
}
示例4: create
import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
* 基于 EasyMapper 实现的基础拷贝,满足基本需求
*
* @param sourceClass 源类型
* @param targetClass 目标类型
* @return copier
*/
public static <F, T> Copier<F, T> create(Class<F> sourceClass, Class<T> targetClass) {
return new MapperCopier<>(sourceClass, targetClass);
}
示例5: createCglib
import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
* 基于 Cglib 实现的拷贝,不能自定义,拷贝跟原对象一模一样的对象
*
* @param sourceClass 源类型
* @param targetClass 目标类型
* @return copier
*/
public static <F, T> Copier<F, T> createCglib(Class<F> sourceClass, Class<T> targetClass) {
return new CglibCopier<>(sourceClass, targetClass);
}