こんにちは。
csvファイルのデータをQueryRunner.batchメソッドでインサートしたいのです。
以下のメソッドでcsvファイルから取り出したデータをカンマで区切り、
Object[][]の形で帰したいのですが、うまくいきません。
次のExceptionが発生してしまいます。
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.String;
どのようにしたら良いか、ご教授願えないでしょうか。
お願いします。
private Object[][] getParm(List dataList, int colCnt){
List parmList = new ArrayList();
String data;
for(Iterator ite = dataList.iterator(); ite.hasNext(); ){
data = (String) ite.next();
//Stringをフィールド毎の配列に変換
String[] fieldList = new String[colCnt]; //データのカラム数分の配列を作成
String[] tempList = data.split(",");
System.arraycopy(tempList, 0, fifieldList);
}
return (String[][]) parmList.toArray();
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
・ エラーは、
data = (String) ite.next();
で起こっていると思われるので、まず引数
List dataList
に、csvファイルの各行が文字列として入っているかどうかが疑われます。
まずそのことを確認してみてください。
・ 次にメソッドを次のように置き換えて実行してみてください。
------------------------------------------------------------
private static String[][] getParm(ArrayList dataList, int colCnt) {
String[][] ss2 = new String[dataList.size()][];
int k=0;
for (Iterator ite = dataList.iterator(); ite.hasNext(); k++) {
String data = (String) ite.next();
ss2[k] = data.split(",");
}
return ss2;
}
------------------------------------------------------------
・ 何処でエラーが起こったかを知らせてもらえますか。
No.1
- 回答日時:
private Object[][] getParm(List dataList, int colCnt){
// private String[][] getParm(List dataList, int colCnt){ //こっちにすべき
List parmList = new ArrayList();
String data;
for (Iterator ite = dataList.iterator(); ite.hasNext(); ){
data = (String)ite.next();
String[] fieldList = new String[colCnt];
String[] tempList = data.split(",");
System.arraycopy(tempList, 0, fifieldList); //不正かつ意味不明な呼び出し
//一体何のために別の配列にコピーすんの??, コピーしなくてもいいのでは?
//しかも、こんな無防備な操作では、ちゃんとcolCnt個あるのか、ヤバイよ.
}
return (String[][]) parmList.toArray(); // parmListは空のまま??
// return parmList.toArray(new String[1][1]); //こちらを使う
// ... ArrayListのドキュメンテーションを読んでください
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[Ljava.lang.Stringってなんですか
-
配列の中に複数存在する数がい...
-
Vectorから一部分を取り出す方...
-
JavaのCalendarのMONTHはなぜ0...
-
セッションを使ったint型の値の...
-
配列で、値の入っている要素数...
-
ページング
-
データベースから取得したデー...
-
Javaで文字と数字が混ざったも...
-
Javaで文字を漢字であるか否か...
-
Java・配列の問題です。 int 「...
-
cloneメソッドについて (java)
-
javaでのプログラム(配列)につ...
-
JavaBeansの配列の値取得方法に...
-
配列をセッションに割り当てた後で
-
forループの評価(条件)式につ...
-
ArrayListからBean配列に値をセ...
-
フローチャート
-
Java配列の問題を教えてくださ...
-
javaプログラミング shuffleメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Ljava.lang.Stringってなんですか
-
この警告はどうすれば?
-
C#で動的配列Listの中身をListB...
-
javaで大容量テキストファイル...
-
C言語でunsigned char配列を連...
-
n番目に大きな値を探索する
-
JavaのBase64デコードで正しく...
-
配列で、値の入っている要素数...
-
Javaで文字を漢字であるか否か...
-
配列の中に複数存在する数がい...
-
データベースから取得したデー...
-
【C#】ハッシュテーブル(連想...
-
Javaで文字と数字が混ざったも...
-
cloneメソッドについて (java)
-
ArrayListからBean配列に値をセ...
-
配列をセッションに割り当てた後で
-
int配列をbyte配列に変換
-
セッションを使ったint型の値の...
-
javamailで複数人にメールを送...
-
【Ajax通信&Java】配列の受け取...
おすすめ情報