0

私はアンドロイドで作成したファイルを開きたいのですが、常にこのエラーが発生します。主な問題は、ファイルを開きたいときにアプリがクラッシュすることです。

07-29 14:56:09.708: E/AndroidRuntime(577): java.lang.IllegalStateException: Could not execute method of the activity
07-29 14:56:09.708: E/AndroidRuntime(577):  at android.os.Handler.dispatchMessage(Handler.java:92)
07-29 14:56:09.708: E/AndroidRuntime(577):  at java.lang.reflect.Method.invokeNative(Native Method)
07-29 14:56:09.708: E/AndroidRuntime(577):  at java.lang.reflect.Method.invoke(Method.java:511)
07-29 14:56:09.708: E/AndroidRuntime(577):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-29 14:56:09.708: E/AndroidRuntime(577):  at dalvik.system.NativeStart.main(Native Method)
07-29 14:56:09.708: E/AndroidRuntime(577):  at java.lang.reflect.Method.invokeNative(Native Method)
07-29 14:56:09.708: E/AndroidRuntime(577):  at java.lang.reflect.Method.invoke(Method.java:511)
07-29 14:56:09.708: E/AndroidRuntime(577):  at menu.menuapp.FrontActivity.confirm(FrontActivity.java:51)
07-29 14:56:09.708: E/AndroidRuntime(577):  at libcore.io.Posix.open(Native Method)

これはファイルを保存するためのコードです。

//Opening the notes file to be write.
    String notes_str = "<resource></resource>"
FileOutputStream notes_file = openFileOutput("notes.xml", Context.MODE_PRIVATE);

//Converting to string the notes_doc
String notes_str = new menu.menuapp.general().xmltostring(notes_doc);
//Saving on the file
notes_file.write(notes_str.getBytes());
//Closing the file.
notes_file.close();

これはファイルを開くためのコードです。

File file = new File("notes.xml");
FileInputStream notes_xml = new FileInputStream(file);
byte fileContent[] = new byte[(int)notes_xml.available()];
//The information will be content on the buffer.

notes_xml.read(fileContent);

String strContent = new String(fileContent);
    notes_xml.close();
4

1 に答える 1

3

読み取り用にファイルを開くときに、パスが正しく指定されていません。Fileに使用するコンストラクターには、ファイル名だけでなく、フルパスが必要です。

openFileOutput()を使用してファイルを書き込む場合は、openFileInput ()を使用してファイルを読み戻すことをお勧めします。そうすれば、すべてのパラメーターを正しく取得できる可能性が高くなります。

ファイルの読み取りと書き込みの詳細については、http://developer.android.com/guide/topics/data/data-storage.html#filesInternalを参照してください。

また、読み取りと書き込みではファイル名が異なります。文字列リソースまたは少なくとも静的ファイナルで定義する必要があります。

于 2012-07-29T19:51:04.997 に答える