gpt4 book ai didi

java - 使用 OpenCSV 获取列数

转载 作者:行者123 更新时间:2023-11-30 08:21:26 25 4
gpt4 key购买 nike

我有一个 txt 文件,我想计算列数。 (我用的是openCSV)

public class demoTable {
public demoTable(){
read();
JOptionPane.showMessageDialog(null, "number of columns inside file: " + getNumberOfColumnsFromFile(), null, JOptionPane.INFORMATION_MESSAGE);
close();
}

private void read(){
try {
this.fileInputStream = new FileInputStream("D:\\Book3.txt");
UTF8_CHARSET = StandardCharsets.UTF_8.newDecoder();
UTF8_CHARSET.onMalformedInput(CodingErrorAction.REPLACE);
this.fileReader = new InputStreamReader(this.fileInputStream, UTF8_CHARSET);
this.reader = new CSVReader(this.fileReader, '\t');
}
catch (FileNotFoundException ex) {
Logger.getLogger(VJTable.class.getName()).log(Level.SEVERE, null, ex);
}
}

private int getNumberOfColumnsFromFile(){
//Estimating number of rows from file (Googled that).
this.numberOfColumns = 0;
try {
while( (this.nextLine = this.reader.readNext()) != null){
this.numberOfColumns++;
}
}
catch (IOException ex) {
Logger.getLogger(VJTable.class.getName()).log(Level.SEVERE, null, ex);
}
return this.numberOfColumns;
}

private void close(){
try {
this.fileInputStream.close();
this.fileReader.close();
this.reader.close();
}
catch (IOException ex) {
Logger.getLogger(VJTable.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

不幸的是,getNumberOfColumnsFromFile() 方法返回行数而不是列数。你能告诉我我在这里做的不好吗?提前谢谢你。

最佳答案

CSVRearder.readNext()方法返回一个 String[],其中每个列/值都是一个元素:

Reads the next line from the buffer and converts to a string array [..] with each comma-separated element as a separate entry.

因此,

String[] header = this.reader.readNext(); // assuming first read
if (header != null) { // and there is a (header) line
int columnCount = header.length; // get the column count
}

关于java - 使用 OpenCSV 获取列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25218343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com