2

fileSaver という新しいオブジェクトを作成するメイン アクティビティがあります。オブジェクト「データ」をファイルにサリアライズしようとしています。FileSave には、ファイルを作成するメソッド serialize() があります。

private String FILE_NAME = "file.dat";
FileSaver fileSaver = new FileSaver();
Data data = new Data();
data.setEmail("aaa@bbb.com");
fileSaver.serialize((Object) data,FILE_NAME);

問題は、アクティビティ以外でファイルを作成できないことです。同じ内部アクティビティを試すと、そのファイルが作成されます。私はパスを試していましたが、成功しませんでした。ファイルがアクティビティから作成されたときに /data/data/my_package_name/files に保存されることはわかっていますが、アクティビティ クラスの外からそのファイルにアクセスするにはどうすればよいですか?

クラス FileSaver:

public class FileSaver {

public void serialize(Object objToSerialize,String fileName) {

    try {
        ObjectOutputStream out = new ObjectOutputStream(
                new FileOutputStream(fileName));
        out.writeObject(objToSerialize);
        out.close();
        System.out.println("Object : " + objToSerialize.getClass()
                + " serialized successfully");
    } catch (Exception ex) {
        System.out.println("Error Saving Object to File :"
                + ex.getMessage());
        ex.printStackTrace();
    }
}
}

ありがとうございました。

4

2 に答える 2

1

コンテキストを外部のJavaクラスに渡す必要があり、コンテキストを使用して、このopenFileOutput()メソッドを使用してAndroidデバイスのメモリにファイルを作成および書き込みます

于 2012-12-01T18:12:31.440 に答える
0

代わりに、ファイルを SDCARD に保存できます。

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(Environment.getExternalStorageDirectory()+File.separator+filename));

//ここで filename は文字列の入力ファイル名であり、 Environment.getExternalStorageDirectory() は SDCard ディレクトリを提供します。

また、必ず<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>Android マニフェスト ファイルにを追加してください。

于 2012-12-02T04:05:08.223 に答える