【发布时间】:2010-06-27 01:17:07
【问题描述】:
我正在为自己编写一个简单的预算应用程序,但我无法弄清楚如何写入内部存储。我似乎没有正确写入文件,我找不到比 developer.android.com 上的 Data Storage article 更深入的示例
基本上,我正在尝试将测试浮点数写入 MyBalance 文件,然后将其读入 balance。在我的实际代码中,我在文件输入/输出操作周围使用了 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 转换,但我仍然不认为正在创建文件。我有一个 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");
这是存储该上下文的内部文件的地方吗?
【问题讨论】: