具有动态标识的javabean
我有一个CSV文件,每页有相同数量的令牌(有时是随机的)。 我需要创建Javabean来存储/检索每个令牌 问题: 如果CSV文件有3列,那么我需要有3列的JavaBean来存储/检索 示例:-公共void setCol3(字符串col1、字符串col2、字符串col3){ ..... } 如果CSV文件有6列,那么我需要有6列的JavaBean来存储/检索 示例:-公共无效集合col6(字符串col1、字符串col2、字符串col3、, 字符串col4、字符串col5、字符串col6){ ..... } 问题: JavaBean中是否有任何方法可以根据CSV的令牌(列)数量自动分配 关于具有动态标识的javabean,java,csv,Java,Csv,我有一个CSV文件,每页有相同数量的令牌(有时是随机的)。 我需要创建Javabean来存储/检索每个令牌 问题: 如果CSV文件有3列,那么我需要有3列的JavaBean来存储/检索 示例:-公共void setCol3(字符串col1、字符串col2、字符串col3){ ..... } 如果CSV文件有6列,那么我需要有6列的JavaBean来存储/检索 示例:-公共无效集合col6(字符串col1、字符串col2、字符串col3、, 字符串col4、字符串col5、字符串col6){ ..
karthik您需要一个灵活的bean,它可以具有不同数量的属性。出于这个特殊的原因,我编写了一个名为的java类 使用FlexBean,您可以执行以下操作:
public static void main(String[] args) {
printCSVLines(readCSV("c:/deleteme/sample.csv"));
}
public static List<FlexBean> readCSV(String csvFile){
List<FlexBean> csvLines = new ArrayList<>();
String line = "";
String cvsSplitBy = ",";
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
while ((line = br.readLine()) != null) {
// use comma as separator
String[] country = line.split(cvsSplitBy);
FlexBean csvLine = new FlexBean();
for (int i=0;i<country.length;i++){
csvLine.set("col"+i, country[i]);
}
csvLines.add(csvLine);
}
} catch (Exception e) {
e.printStackTrace();
}
return csvLines;
}
public static void printCSVLine(FlexBean csvLine){
for (String col: csvLine.getPropertyNames()){
System.out.print(csvLine.valueOf(col).toString()+" | ");
}
}
public static void printCSVLines(List<FlexBean> csvLines){
for (FlexBean line: csvLines) {
printCSVLine(line);
System.out.println("");
}
}
publicstaticvoidmain(字符串[]args){
printCSVLines(readCSV(“c:/deleteme/sample.csv”);
}
公共静态列表readCSV(字符串csvFile){
List csvLines=new ArrayList();
字符串行=”;
字符串cvsSplitBy=“,”;
try(BufferedReader br=new BufferedReader(new FileReader(csvFile))){
而((line=br.readLine())!=null){
//使用逗号作为分隔符
字符串[]国家=行分割(cvsSplitBy);
FlexBean csvLine=新的FlexBean();
对于(int i=0;我必须在列表中存储行的值。嗨,我知道如何处理行的值…但这不是我感兴趣的。