在java中读取CSV文件时无法打印空行

在java中读取CSV文件时无法打印空行,java,csv,Java,Csv,我有下面的代码,我在java中读取一个csv文件,csv文件如下 "1.0.0.0","1.0.0.255","16777216","16777471","AU","Australia" "1.0.1.0","1.0.3.255","16777472","16778239","CN","China" "1.0.4.0","1.0.7.255","16778240","16779263","AU","Australia" "1.0.8.0","1.0.15.255","16779264","167

我有下面的代码,我在java中读取一个csv文件,csv文件如下

"1.0.0.0","1.0.0.255","16777216","16777471","AU","Australia"
"1.0.1.0","1.0.3.255","16777472","16778239","CN","China"
"1.0.4.0","1.0.7.255","16778240","16779263","AU","Australia"
"1.0.8.0","1.0.15.255","16779264","16781311","CN","China"
"1.0.16.0","1.0.31.255","16781312","16785407","JP","Japan"
"1.0.32.0","1.0.63.255","16785408","16793599","CN","China"
"1.0.64.0","1.0.127.255","16793600","16809983","JP","Japan"
"1.0.128.0","1.0.255.255","16809984","16842751","TH","Thailand"
以下代码用于在java中读取文件

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class CSVFileReader {

  public static void main(String[] args) {

    CSVFileReader obj = new CSVFileReader();
    obj.run();

  }

  public void run() {

    String csvFile = "Whois.csv";
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";

    try {

        br = new BufferedReader(new FileReader(csvFile));
        while ((line = br.readLine()) != null) {

                // use comma as separator
                String[] country = line.split(cvsSplitBy);
                if(line.contains("AU") || line.contains("AU"))
                {

                         System.out.println("Country [code= " + country[4] 
                                 + " , name=" + country[5] + "]");
                }
                else
                {
                        System.out.println("");
                }

        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    System.out.println("Done");
  }

}
用这段java代码,我正在读取我得到AU的行。它正确地显示了两个结果,这是正确的,但我想知道我没有得到AU字符串的行。它应该将该行打印为空白

正如我们在csv文件代码中看到的。AU位于第一行和第三行,它在AU存在的地方打印两行。我希望输出为第一行AU,然后第二行应为空,然后在第三行中显示所需的AU值


如何打印第二个空行呢?现在,它正在打印两行,其中包含行中的AU

要为非AU行写入空行,您可以写入:

String[] country = line.split(cvsSplitBy);
if( line.contains("AU") ) {
   System.out.println("Country [code= " + country[4]  + " , name=" + country[5] + "]");
} else {
   System.out.println("");
}
尽管这种方法不是一个好的编码/设计的例子(可能除了最简单的、一次性使用的脚本,在这种情况下它并不重要)

我建议考虑分离CSV结果的处理(以方法的形式,该方法将接收CSV文件并返回已处理行/结果的集合),然后将其打印出来(接收行/结果的集合并迭代打印)


通过这种方式,您将能够以自动化的方式测试您是否正确处理了结果

您希望整行为空,还是只希望国家/地区字段为空?如果(line.contains(“AU”)| | line.contains(“AU”)?@orlandocr为空sure@WhoAmI-整行都是空白的,先生。@orlandocr也尝试过这个,但没有写。。。