(二)文件读取

openCsv

文件路径
/IdeaProjects/xxx/src/main/resources/RequestListBICIDSimplified.csv
文件样式
"KEY","NAME","ADDRESS1","ADDRESS2","CITY","STATE","COUNTRY","SWIFTCODE","NID","CHIPS","ABA","ISSWITCHING"

"KEY2","NAME2","ADDRESS12","ADDRESS22","CITY2","STATE2","COUNTRY2","SWIFTCODE2","NID2","CHIPS2","ABA2","ISSWITCHING2"

"KEY3","NAME3","ADDRESS13","ADDRESS23","CITY3","STATE3","COUNTRY3","SWIFTCODE3","NID3","CHIPS3","ABA3","ISSWITCHING3"

...
注意点

1.文件有空行,读取的时候要看空行读出来什么
2.最后要放在map里面降低时间复杂度.

代码
import com.opencsv.bean.CsvBindByPosition
import com.opencsv.bean.CsvToBean
import com.opencsv.bean.CsvToBeanBuilder
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner
import org.springframework.transaction.annotation.Transactional
import org.springframework.util.ResourceUtils
import java.io.FileReader

@RunWith(SpringRunner::class)
@SpringBootTest(classes = [Application::class])

class CsvTests {
    private val CSV_FILE_PATH = "classpath:RequestListBICIDSimplified.csv"

    @Test
    fun csv() {
        val reader = FileReader(ResourceUtils.getFile(CSV_FILE_PATH))
        
        val csvToBean: CsvToBean<BankInfo> =
                CsvToBeanBuilder<BankInfo>(reader)
                        .withType(BankInfo::class.java)
                        .withIgnoreLeadingWhiteSpace(true)
                        .build()
                        
        csvToBean.parse().fold(mutableMapOf<String, String>()) {
            result, bankInfo ->
            result.apply { if(bankInfo.swiftCode.isNotBlank()) put(bankInfo.swiftCode,bankInfo.isSwitching) }
        }
    }
}

data class BankInfo(
    @CsvBindByPosition(position = 7) var swiftCode:String = "",
    @CsvBindByPosition(position = 11) var isSwitching:String = ""
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值