0

基本的にこれをやりたいのですが

class myclass
{
    int a1;
    float b1;
    char c1;     //This is a single character
}
List<myclass> obs;

実行時に、このobs変数はリストであるため、取得したサイズのmyclassインスタンスの配列が含まれます。obs.size();

したがって、このデータをファイルに書き込む方法は、OutputStreamまたは同様のものを使用してバイナリとして「data1.bin」と言います。ただし、これはAndroidOSで実行する必要があります。

私はC++でこのようなことをしました

class myclass
{
    int a1;
    float b1;
    char c1;
}

myclass student1;

ofstream output_file("students.data", ios::binary);
output_file.write((char*)&student1, sizeof(student1));
output_file.close()

しかし、Android OSでこれを行う方法は?

4

1 に答える 1

0

クラスをファイルにダンプする場合は、クラスに Serializable を実装させ、Java (または Android の Dalvik VM) がバックグラウンドでこれを行います。

class MyClass implements Serializable {

    private static final long serialVersionUID = 1L;

    int a1;
    float b1;
    char c1;     //This is a single character
}


private File file;
private MyClass myClass;

private void writeIt() throws IOException {

    ObjectOutputStream stream = null;
    try {
        stream = new ObjectOutputStream(new FileOutputStream(file));
        stream.writeObject(myClass);
    } 
    finally {
        if(stream != null) {
            stream.close();
        }
    }
}

private MyClass readIt() throws IOException, ClassNotFoundException {

    ObjectInputStream stream = null;
    try {
        stream = new ObjectInputStream(new FileInputStream(file));
        return (MyClass) stream.readObject();
    } 
    finally {
        if(stream != null) {
            stream.close();
        }
    }
}
于 2012-04-21T16:35:17.980 に答える