java中的结构化数据

时间:2013-03-19 20:36:00

标签: java class data-structures struct

C 中,我将创建如下数据结构:

struct file_data_format
{
  char name[8][20];
  float amp[8];
  int filter[8];
};

extern struct file_data_format f_data;

然后我可以将整个结构读取或写入文件或内存位置。

我如何在java中的类中执行此操作?

4 个答案:

答案 0 :(得分:2)

在询问之前,您应该阅读Java的基础知识。 C中的结构可以用Java编写为Class。

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(封装,多态,继承)。

答案 1 :(得分:1)

如果您想达到类似效果,可以执行以下操作。

不幸的是,你没有像在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
}

答案 2 :(得分:1)

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;
    }

}

答案 3 :(得分:1)

Java中的结构等价于JavaBean,正如其他答案所示。

来自Wikipedia,一个JavaBean:

  • 是可序列化的
  • 有一个0参数构造函数
  • 允许使用getter和setter方法访问属性。

要从文件或内存中写入和读取它,它不像C中那么简单。通常使用Java Object serialization将对象写入/读取到ObjectInputStream / ObjectOutputStream,它可以附加到文件或字节数组。