我正在使用fos.write(some_number)
但是当我试图显示该数字时,它不会超过255。
这是第二个活动的代码:
FileOutputStream fos;
try {
fos = openFileOutput("Income", Context.MODE_PRIVATE);
//"Income" is the number that is written on the TextField
fos.write(Income);
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
第一个活动的代码:
try {
FileInputStream fis;
fis = openFileInput("Income");
TOTAL_INCOME = fis.read();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//...
//....
TextView textView = (TextView) findViewById(R.id.IncomeValue);
textView.setText(""+ TOTAL_INCOME);
答案 0 :(得分:2)
write()方法只写一个范围为0-255的字节,所以你不会得到更多的东西。
更好地使用DataOutputStream和DataInputStream,例如:
FileOutputStream fos;
try {
fos = openFileOutput("Income", Context.MODE_PRIVATE);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(Income);
dos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
第一活动:
try {
FileInputStream fis;
fis = openFileInput("Income");
DataInputStream dis = new DataInputStream(fis);
TOTAL_INCOME = dis.readInt();
dis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
TextView textView = (TextView) findViewById(R.id.IncomeValue);
textView.setText(""+ TOTAL_INCOME);
答案 1 :(得分:0)
如果查看FileOutputStream#write()
的javadoc,你会注意到它只写出一个字节,其范围为0-255(含)。这就是为什么你永远不会看到大于255的数字。