1

現在、Androidアプリケーションのファイルに現在の時刻を貼り付けようとしています。コードは次のようになりますが、ファイルは作成されません。マニフェストを介してSDカードに書き込むためのアプリケーションの許可を有効にしました。何か案は?

    Time today = new Time(Time.getCurrentTimezone());
    today.setToNow();
    try {
        File myFile = new File("/sdcard/mysdfile.txt");
        myFile.createNewFile();
        FileOutputStream fOut = new FileOutputStream(myFile);
        OutputStreamWriter myOutWriter = 
                                new OutputStreamWriter(fOut);
        SimpleDateFormat dF = new SimpleDateFormat("HHMMSS");
        StringBuilder current = new StringBuilder(dF.format(today));
        myOutWriter.append(current);
        myOutWriter.close();
        fOut.close();

    }
4

2 に答える 2

2

パスをハードコーディングする代わりに、Environment.getExternalStorageDirectory()を使用する必要があり/sdcard/ます。

File file = new File(Environment.getExternalStorageDirectory(), "mysdfile.txt");

コードを実行しようとしましたが、が原因でクラッシュしdF.format(today)ます。

これを持っている代わりに、

 Time today = new Time(Time.getCurrentTimezone());
 today.setToNow();

これでうまくいきます

Date today = new Date();

このコードは私のデバイスで動作します。

Date today = new Date();

try {
    File myFile = new File(Environment.getExternalStorageDirectory(), "mysdfile.txt");            
    myFile.createNewFile();

    FileOutputStream fOut = new FileOutputStream(myFile);
    OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
    SimpleDateFormat dF = new SimpleDateFormat("HHMMSS");
    StringBuilder current = new StringBuilder(dF.format(today));
    myOutWriter.append(current);
    myOutWriter.close();
    fOut.close();
} catch (IOException e) {
    e.printStackTrace();
}
于 2012-08-07T02:45:20.197 に答える
0

次のように別の方法を試してください、

private BufferedWriter buff = null;
private File logFile = null;
logFile = new File ( "/sdcard/mysdfile.txt" );
if ( !logFile.exists() )
{
    logFile.createNewFile();
}
buff = new BufferedWriter ( new FileWriter ( logFile,true ) );
buff.append( "Write what you want to store" );
buff.close();

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>また、AndroidManifest.xmlで権限を付与する必要があります。

于 2012-08-07T02:58:48.893 に答える