尝试读取csv文件的第二列时出现NullPointerException

时间:2017-05-26 08:40:28

标签: groovy soapui

下面的代码读取包含两列的csv文件。如果您查看已注释掉的for循环,则代码将从第一列中检索所有数据行。但是,当我尝试实现从第二列中选择的另一个循环时,我得到一个'空指针异常'。

如果我将值从[1]更改为[0],我会注意到未注释的for循环。它有效,但显然我需要[1]选择第二列。

我尝试创建两个单独的csv文件并从那里开始但仍然遇到相同的错误。

以下代码:

def test1array_properties = [];
def test2array_properties = [];

for(int i = 0; i <= test1_properties.size(); i++) {
        if(!test1_properties[i][0]) {
        break
    } else {
        log.info test1_properties[i][0]
        test1array_properties << test1_properties[i][0]
    }

}


for(int i = 0; i <= test2_properties.size(); i++) {
    if(!test2_properties[i][1]) {
        break
    } else {
        log.error test2_properties[i][1]
        test2array_properties << test2_properties[i][1]
    }

}

1 个答案:

答案 0 :(得分:3)

这是一个groovy脚本,用于将所需数据输入各自的变量。

这不使用任何库,只是groovy。

//This assumes both villas, hotels in the csv file
//Change file name if needed;use absolute path or use property expansion to make it work on other machines.

def filename = 'VillasAndBeach.csv'
def lines = new File(filename).readLines()
def villas = []
def hotels = []
lines.eachWithIndex { line, index ->
    if (index) {
        def data = line.split(',')*.trim()
        if (data[0]) villas << data[0]
        if (data[1]) hotels << data[1]
    }
}

log.info "Villas : ${villas}"
log.info "Hotels: ${hotels}"