把一个数组写到二进制文件,然后从文件中读出来?

编写程序(C++),输入四个整数到一个整数数组,先把该数组写到二进制文件array.dat,然后从文件中读出来,最后按从大到小的顺序依次输出。

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    float data[4];
    fstream  afile;
    afile.open("array.dat", ios::app|ios::out|ios::in);
        for (int i = 0; i < 4; i++) {
    cin>>data[i];
    afile<<data[i];
    afile>>data[i];
        }
    afile.close();
        for (int i = 0; i  < 3; i++)
        for (int j = 0; j < 3; j++)
        {
        if (data[j] < data[j + 1])
        {
        float t = data[j]; data[j] = data[j + 1]; data[j + 1] = t;
        }
        }
        for (int i = 0; i < 4; i++)
        cout << data[i] << " ";
    return 0;
}