0

内部ストレージ ファイルから特定のデータを読み取る方法。たとえば、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() を使用)

ありがとう

4

1 に答える 1

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
        }
    }
}
于 2012-07-19T19:23:01.730 に答える