オブジェクトの配列を作成したい各オブジェクトはいくつかの文字列で構成されており、このオブジェクトを人間が読める形式でファイルに保存したい、配列全体を一度に読み書きする方法がありますか、それとも保存する必要があります要素ごと??
2 に答える
人間が読める方法とは、正確にはどういう意味ですか?json データで十分だと思われる場合は、配列をシリアル化し、ファイルに出力します。
理想的に言えば、各オブジェクトは個別に独立しているため、これらすべてのオブジェクトに汎用ロジックを適用する方法がわからないため、要素ごとに移動する方がよいでしょう。
あなたが求めている主なことは、「一度に配列全体を書き込めますか」ということのようです。
もちろん:
String[] things = { "ABC", "XYZ" };
System.out.println(Arrays.toString(things));
これを試してみると、次のような質問が寄せられていると思います。
System.out.println(things)
次のようなものが得られます。
[Ljava.lang.String;@35a8767
ここに表示されるのは、配列参照そのものです。あなたが欲しかったのは、上記のようなきれいな印刷版でした。これらのきれいな出力はtoString
、Java のすべてのオブジェクトに存在する関数のカスタム実装から得られ、Object
オブジェクト自体から得られます。配列はオブジェクトではなく「プリミティブ」であるため、関数はありませんtoString
。したがって、このオブジェクトは、まさにこの目的のためにArrays
ユーティリティ静的関数を提供します。toString
別の解決策はList
、配列の代わりに a を使用することです。List
オブジェクトであり、きれいtoString
な機能を持っています。
List<String> thingList = Arrays.asList(things);
System.out.println(thingList);
さて、これをファイルに書き出して、それを読み返したい場合 (あなたがほのめかしたように)、解析の世界に入ります。オブジェクトをファイルに書き込んで読み戻す場合は、既存のツールを調べて、オブジェクトを XML または JSON (人間が読めるシリアライゼーション形式) にシリアライズおよびデシリアライズする必要があります。