咱们昨天讲过了是如何导出CSV格式的文件,今天就简单唠叨下,CSV格式的文件是如何导入的;前些时候学习了kotlin语言,和java无缝混合开发还挺有意思的,若有Java版需求的请留言.额外再叨扰下,eclipse对kotlin支持不太友好,建议idea.
/**
* 把csv文件转换成对象
* @param clazz 需要转换的对象类
* @param ins csv输入流
* @param columnIndex 列描述所在行从0开始。
* @param dataIndex 数据起始行从0开始。
*/
fun <T> csvMap(clazz: Class<T> , ins: InputStream , columnIndex: Int , dataIndex: Int): List<T> {
try {
var lines = BufferedReader(InputStreamReader(ins , "GBK"))
.use {it.lineSequence().map{String(it.toByteArray(Charsets.UTF_8))}.toList()}
var rows = lines.size
if (rows <= columnIndex || rows <= dataIndex) // do something
//获取对象域名
val columns =lines[columnIndex].split(COMMA_DELIMITER.toRegex()).dropLastWhile
{ it.isEmpty() }.toTypedArray()
var lists = mutableListOf<T>()
var mapper =