プロが教えるわが家の防犯対策術!

-1.824667,-1.759031,877.1089,3.06299
,13.17086  …
と12個のデータが並んでいるcsv形式のファイルを出力するため、String型で1440個の配列を準備し、その配列に何度も値を入れていくようにしたのですが全て、
[Ljava.lang.String;@ec4a87
という文字列になって出力されてきました。
12個から4個にしたら最初は正常に出力され、途中から最初の2個が上記のようになっていました。どうすれば解決できますか。できれば具体的に教えてください。

A 回答 (2件)

Globe.fileNameChange って何? Globe.head って何? Globe.extractionData って何? 肝心なところに関する説明がありませんが……



extractionData と head という二つのローカル変数は初期化しただけで実際には使われていませんが、何か意味があるのですか? Globe.fileNameChange や Globe.head と名前が同じで紛らわしいですが、何か関係があるのでしょうか?

この回答への補足

すみませんでした。
class Globe{
public static String fileNameChange;
public static String head[]=new String[1441];
public static String extractionData[]=new String[1440];
}
としていたのですが、入力する際に間違えて
String extractionData[]=new String[1440];
String head[]=new String[1441];
としていました。
fileNameChangには保存先の絶対パス、headには日付と時刻を2004,11,2,18,34,という風な感じに入れています。そしてextractionDataにはデータを入れてます。

補足日時:2004/11/03 23:39
    • good
    • 1

配列の要素である文字列を出力すべきところを、誤って配列そのものを出力しているように思われます。



[Ljava.lang.String; とは java.lang.String オブジェクトの1次元配列を表すクラスのバイナリ名、ec4a87 とはその配列オブジェクトのハッシュコードです。

> できれば具体的に教えてください。

具体的にどんなプログラムを書いたのかわからないので、具体的にどこをどう直せばよいのかまでは私にも分かりません……

この回答への補足

ありがとうございました。保存に関するプログラムはこのようにしています。

String extractionData[]=new String[1440];
String head[]=new String[1441];
try{
BufferedWriter wc1 = new BufferedWriter(new FileWriter(Globe.fileNameChange,true));
for(i=0;i<1440;i++){
wc1.write(Globe.head[i]+Globe.extractionData[i]+"\n");
}
wc1.close();
}
catch (Exception e){
System.out.println("読み込みエラー: "+ e);
System.exit(1);
}

どこを直せばよろしいのでしょうか。

補足日時:2004/11/01 22:41
    • good
    • 5

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A