0

クラス オブジェクトを内部ストレージに保存しようとしているので、使用する必要はありませんSharedPreferences。しかし、保存しようとしているファイルが見つかりません。

public class LoginActivity extends AppCompatActivity implements Serializable {

    final String filename = "userInfo.txt";

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final File file = new File(this.getFilesDir(), filename);
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void Fblogin(){ //Called when user tries to login with Facebook
        //Off-topic FB code here
        new User(/*args*/){
            @Override
            public void userFinished(User user){

            try{
                FileOutputStream fileOutputStream = openFileOutput(filename, MODE_PRIVATE);
                ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
                objectOutputStream.writeObject(user);
                objectOutputStream.flush();
                objectOutputStream.close();

            } catch (IOException e){e.prinstacktrace();}

            }
        }
    }
}

自分でファイルを手動で作成してプロジェクト フォルダーに配置する必要がありcreateNewFile()ますか?

エラー:

java.io.FileNotFoundException: userInfo.txt: open failed: ENOENT (No such file or directory)
at com.couponwallet.couponwalletconsumer.MainActivity.onCreate(MainActivity.java:124)
Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
at libcore.io.IoBridge.open(IoBridge.java:442)

編集:私はどういうわけか私の2つの活動を混同しました.問題があるのは私の他の活動です. これtry catchは私のMainActivity中にありonCreateます。

try {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("userInfo.txt"));
        /*Above line is line 124 and causes the error*/
        user = (User) ois.readObject();

        Log.v("MainUser", "try statement");

        if (user == null) {
            Log.v("MainUser", "null");
        } else {
            Log.v("MainUser", user.toString());
        }

    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
}
4

0 に答える 0