从内部存储文件(Android)读取

时间:2012-07-19 18:56:46

标签: android

如何从内部存储文件中读取特定数据。 例如,我已经存储了 1.设备2.时间(纪元格式)3。按钮文本

            CharSequence cs =((Button) v).getText();
            t = System.currentTimeMillis()/1000;
    s = cs.toString();
    buf = (t+"\n").getBytes();
    buf1 = (s+"\n").getBytes();


    try {
        FileOutputStream fos = openFileOutput(Filename, Context.MODE_APPEND);
        fos.write("DVD".getBytes());
        fos.write(tab.getBytes());
        fos.write(buf);
        fos.write(tab.getBytes());
        fos.write(buf1);
        //fos.write(tab.getBytes());
        //fos.write((R.id.bSix+"\n").getBytes());
        fos.write(newline.getBytes());
        //fos.flush();
        fos.close();

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
然后在阅读时,我们怎样才能从文件中只读取价格? (使用fos.read())

由于

1 个答案:

答案 0 :(得分:0)

我建议以更有条理的方式编写文件,如下所示:

long t = System.currentTimeMillis()/1000;
String s = ((Button) v).getText();
DataOutputStream dos = null;
try {
    dos = new DataOutputStream(openFileOutput(Filename, Context.MODE_APPEND));
    dos.writeUTF("DVD");
    dos.writeLong(t); // Write time
    dos.writeUTF(s); // Write button text
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} finally {
    if (dos != null) {
        try {
            dos.close();
        } catch (IOException e) {
            // Ignore
        }
    }
}

要读回来,就像这样:

DataInputStream dis = null;
try {
    dis = new DataInputStream(openFileInput(Filename));
    String dvd = dis.readUTF();
    long time = dis.readLong();
    String buttonText = dis.readUTF();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (dis != null) {
        try {
            dis.close();
        } catch (IOException e) {
            // Ignore
        }
    }
}