拥有超过256个android文件输出流的数量

时间:2014-05-17 23:17:00

标签: java android io

我正在使用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);

2 个答案:

答案 0 :(得分:2)

write()方法只写一个范围为0-255的字节,所以你不会得到更多的东西。

更好地使用DataOutputStreamDataInputStream,例如:

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的数字。