Java 将CSVReader输出复制到数组(将单个索引复制到新数组)
我有一个CSV文件,我正在使用CSVReader库读取该文件 我想逐行遍历文件,并将特定列中的值保存到新数组中 下面的代码给出了第2列中的数据列表 如何获取此数据并将其保存到阵列中? 我将列分隔符指定为逗号,并跳过文件的前两行Java 将CSVReader输出复制到数组(将单个索引复制到新数组),java,arrays,csv,Java,Arrays,Csv,我有一个CSV文件,我正在使用CSVReader库读取该文件 我想逐行遍历文件,并将特定列中的值保存到新数组中 下面的代码给出了第2列中的数据列表 如何获取此数据并将其保存到阵列中? 我将列分隔符指定为逗号,并跳过文件的前两行 public class ReadFile { // Location of file to read private static final String FILE="myfile.csv"; public static vo
public class ReadFile {
// Location of file to read
private static final String FILE="myfile.csv";
public static void main(String[] args) throws IOException {
CSVReader reader = new CSVReader(new FileReader(FILE), ',','\'', 2);
String [] nextLine;
while ((nextLine = reader.readNext()) != null) {
System.out.println(nextLine[1]);
}
}
}
来自nextLine[1]的电流输出
1720178147618
1720178147617
1720178147616
1720178147615
1720178147614
1720178147613
1720178147612
期望输出
String[] ID = 1720178147618, 1720178147617, 1720178147616, 1720178147615, 1720178147614, 1720178147613, 1720178147612
我认为im所追求的是关于如何将存储在单个索引中的数据转换为一个新的单独索引数组的说明。假设您使用的是来自的CSVReader,则显示有一种readAll方法,可以完全执行您希望执行的操作:
列表值=reader.readAll 如果给出另一个答案,我不确定这是否是你想要的。我理解为您想要一个只包含第二列数据的数组 以下是我所拥有的:
List<String> strings = new ArrayList<>();
while...{
strings.add( nextLine[1] );
}
String[] ID = strings.toArray(new String[strings.size()]);
您需要将内容添加到列表-这是一个可扩展的集合结构
final List<String> list = new LinkedList<String>();
然后,如果需要字符串[],可以调用toArray方法
但是您也可以使用列表。您好,谢谢您的回复。我尝试了readAll,但是它读取整个CSV文件,仅在一列之后即时消息。即使我使用readAll,我如何将列表的输出保存到数组中?我尝试了list.toArray函数,我得到了一个值,但无法计算出如何迭代以获得所有的Rowstory,我误解了您想要实现的目标。很高兴有人能帮助你。这对我很有用,谢谢!感谢所有回复者的帮助。
final List<String> list = new LinkedList<String>();
while ((nextLine = reader.readNext()) != null) {
list.add(nextLine[1]);
}
final String[] array = list.toArray(new String[list.size()]);