我正在为自己编写一个简单的预算应用程序,但在弄清楚如何写入内部存储时遇到了麻烦.我似乎没有正确地写入文件,并且在developer.android.com上找不到比Data Storage article更深入的示例了
基本上,我试图将测试浮点数写入MyBalance文件,然后将其读入平衡.在我的实际代码中,我在文件输入/输出操作周围使用了try / catch语句,但是我跳过了它们以使代码更具可读性.
float test = 55;
float balance;
byte[] buffer = null;
FileOutputStream fos = openFileOutput( "MyBalance", Context.MODE_PRIVATE );
fos.write(Float.floatToRawIntBits(balance));
fis.read(buffer); //null pointer
ByteBuffer b = ByteBuffer.wrap(buffer);
balance=b.getFloat();
这就是要旨,有人知道我在做什么错吗?
编辑:
感谢您的答复,我继续按照您的建议将字符串转换为String或从String转换为String,但是我仍然不认为该文件正在创建.我有一个if语句,如果它存在于onResume()中并且未在运行,则从中读取.我发布了一些代码.
这是我编写文件的方式(setbal是EditText,balanceview是TextView):
balance = Float.valueOf(setbal.getText().toString());
balanceview.setText(setbal.getText());
balstring = String.valueOf(balance);
for (int i = 0; i < balstring.length(); ++i)
try {
fos.write((byte)balstring.charAt(i));
} catch (IOException e) {
e.printStackTrace();
}
我检查文件是否存在于onResume()中,如下所示:
File file = new File("data/data/com.v1nsai.mibudget/balance.txt");
那是用于该上下文的内部文件的存储位置吗?