鑑於我有一個csv文件,如本解析csv文件來填充數據庫
str_name,int_points,int_bonus
joe,2,5
Moe,10,15
Carlos,25,60
我可以有列的X數和行y個csv文件,所以我試圖建立一個通用的方法解析它並將數據填充到dynamodb表中。
爲了填充dynamodb表我會做這樣的事
String line = "";
String cvsSplitBy = ",";
try (BufferedReader br = new BufferedReader(
new InputStreamReader(objectData, "UTF-8"));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] elements = line.split(cvsSplitBy);
try {
table.putItem(new Item()
.withPrimaryKey("name", elements[0])
.withInt("points", elements[1])
.withInt("bonus", elements[2])
.....);
System.out.println("PutItem succeeded: " + elements[0]);
} catch (Exception e) {
System.err.println("Unable to add user: " + elements);
System.err.println(e.getMessage());
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
但是我不會總是知道閹我正在將一個int或字符串,它是在csv文件depenedent所以我很有點不知道如何創建一個通用函數,它會讀取我的csv文件的第一行,並利用前綴來指示特定列是int還是字符串。
你不能指定你的CSV文件的格式嗎? –
我會使用類似opencsv的API。當你解析CSV文件時,你會得到一個String []的String [],這將幫助你在這種情況下。 – lsiva
@dsp_user我的csv文件將完全像我上面發佈的示例..除了課程將有更多的列和行.. – user1010101