0

フロートの配列(約5000フロートになるとしましょう)をSDカードに保存したいと思います。後で、floatのファイルをリソースアプリに配置して、新しいアプリがそれらのfloatを後で処理できるようにします。これはできますか?そのために使用できる例はありますか?どのファイル拡張子を使用するのが最適ですか?

ありがとう!

4

2 に答える 2

3

私は Android にあまり詳しくありませんが、Java の観点からすると、シリアライゼーションと ObjectOuputStream / ObjectInputStream を使用することに意味はありますか? これはまさにあなたが望むことをするように聞こえます。関連する議論は次の場所にあります。

Javaでリストをシリアライズするには?

http://www.jguru.com/faq/view.jsp?EID=34789

于 2012-07-25T19:39:24.043 に答える
0

まず、AndroidManifest.xml ファイルに適切な権限を追加する必要があります。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

また、アプリケーションを実行しているデバイスに利用可能な外部ストレージがあるかどうかを (実行時に) 確認する必要があります。

String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state))
{

  // Read / Write Access
  externalStorageAvailable = true;
  externalStorageWriteable = true;

}
else if(Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
{

  // Read Access
  externalStorageAvailable = true;
  externalStorageWriteable = false;

}
else
{

  // We cannot read / write
  externalStorageAvailable = false;
  externalStorageWriteable = false;

}

最後に、次のようなことを行うことでファイルを書き込むことができます...

FileOutputStream fileStream = null;
PrintStream printStream = null;
File file = new File(FILE_NAME);

try
{

  fileStream = new FileOutputStream(file);
  printStream = new PrintStream(fileStream);

  for (int i = 0; i < FLOAT_ARRAY_SIZE; i++)
  {

    printStream.print(FLOAT_DATA[i]);
    printStream.println();

  }

}
catch(Exception e)
{

  e.printStackTrace();

}
finally
{

  if(printStream != null)
  {

    printStream.close();

  }

}

前に述べたように、'.bin' または '.dat' 拡張子は問題ありません。

于 2012-07-25T20:15:23.570 に答える