什么';我在Android应用程序&x27;中读取和写入文件有什么问题;谁的资产?

什么';我在Android应用程序&x27;中读取和写入文件有什么问题;谁的资产?,android,inputstream,bufferedreader,fileoutputstream,android-assets,Android,Inputstream,Bufferedreader,Fileoutputstream,Android Assets,代码优先: AssetManager mgr = DeviceListActivity.this.getApplicationContext().getAssets(); try { Log.e("Glenn:", address); FileOutputStream fout = mgr.openFd("device/device_address.txt").createOutputStream(); PrintWriter _fout = new PrintWrit

代码优先:

AssetManager mgr = DeviceListActivity.this.getApplicationContext().getAssets();

try {
    Log.e("Glenn:", address);
    FileOutputStream fout = mgr.openFd("device/device_address.txt").createOutputStream();
    PrintWriter _fout = new PrintWriter(fout);
    _fout.println(address);
    Log.e("Glenn", address);

    _fout.close();
    fout.close();

    InputStream fin =  mgr.open("device/device_address.txt");
    BufferedReader br = new BufferedReader(new InputStreamReader(fin));
    address = br.readLine(); 

    try {
        Log.e("Glenn:", address);
    } catch (NullPointerException e) {
        e.printStackTrace();
    }
} catch (IOException e) {
    e.printStackTrace();
    Log.e("Glenn", "error with OutputStream");
}

前两个
Log.e()
调用打印的地址值是正确的值,实际上是设备MAC地址。但是,当我试图测试刚写入的文件中读取的地址值时,
NullPointerException
Log.e()
调用中被捕获。这意味着从文件读取的值为
NULL
。有人能指出代码有什么问题吗

您无法写入应用程序的资产文件。您只有读取权限,但没有写入权限。仅提供从应用程序的资产文件夹读取文件的方法。

您无法在应用程序的资产文件中写入文件。您只有读取权限,但没有写入权限。仅提供从应用程序的资产文件夹读取文件的方法。

是否可以写入数据或更改任何现有资产/原始文件?我认为这是不可能的,因为它是打包的(.apk)并且不能在大小上扩展。是否可以写入数据或更改任何现有资产/原始文件?我认为不可能,因为它是打包的(.apk)并且不能以大小进行扩展。我如何保存一些数据以便在重新启动应用程序时使用?在这种情况下,我想保存设备的MAC地址。@user1437534持久存储有多个选项。查看文档:那么我如何保存一些数据,以便在重新启动应用程序时使用?在这种情况下,我想保存设备的MAC地址。@user1437534持久存储有多个选项。见文件: