Cでは、次のようなデータ構造を作成します。
struct file_data_format
{
char name[8][20];
float amp[8];
int filter[8];
};
extern struct file_data_format f_data;
次に、この構造全体をファイルまたはメモリの場所に読み書きできます。
Javaのクラスでこれを行うにはどうすればよいですか?
Cでは、次のようなデータ構造を作成します。
struct file_data_format
{
char name[8][20];
float amp[8];
int filter[8];
};
extern struct file_data_format f_data;
次に、この構造全体をファイルまたはメモリの場所に読み書きできます。
Javaのクラスでこれを行うにはどうすればよいですか?
質問する前に、Java の基本を読む必要があります。C の構造は、Java のクラスとして記述できます。
public class FileDataFormat implements Serializable {
String[][] name = new String[8][20];
float[] amp = new float[8];
int[] filter = new int[8];
public FileDataFormat() {
}
public void setName(String[][] name) {
this.name = name;
}
public String[][] getName() {
return this.name;
}
// next getters and setters
}
OOP(カプセル化、ポリモーフィズム、継承)を強くお勧めします。
他の回答で示されているように、Java の構造体に相当するものは JavaBean です。
ウィキペディアからJavaBean :
ファイルまたはメモリから読み書きするのは、C ほど単純ではありません。通常、Java オブジェクトのシリアル化を使用して、ファイルまたはバイト配列にアタッチできる ObjectInputStream/ObjectOutputStream にオブジェクトを読み書きします。
同様の効果を達成したい場合は、次のことができます。
残念ながら、C で行うように、メモリ内での表現方法をそれほど制御することはできません。
public class file_data_format
{
public char name[8][20];
public float amp[8];
public int filter[8];
}
...
public static void main()
{
file_data_format fdf = new file_data_format();
fdf.name = charArrayIGotFromSomewhere
}
public class FileDataFormat {
private String name;
private float amp;
private int filter;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getAmp() {
return amp;
}
public void setAmp(float amp) {
this.amp = amp;
}
public int getFilter() {
return filter;
}
public void setFilter(int filter) {
this.filter = filter;
}
}