0

このコードを使用してファイルに書き込んでいます。

        protected void writeFile(String text) {
            DataOutputStream os = null;
            FileConnection fconn = null;
                try {
                    fconn = (FileConnection) Connector.open("file:///store/home/user/documents/file.txt", Connector.READ_WRITE);
                    if (!fconn.exists())
                        fconn.create();
                    os = fconn.openDataOutputStream();
                    os.write(text.getBytes());
                } catch (IOException e) {
                    System.out.println(e.getMessage());
                } finally {
                    try {
                        if (null != os)
                            os.close();
                        if (null != fconn)
                            fconn.close();
                    } catch (IOException e) {
                        System.out.println(e.getMessage());
                    }
            }}

コードは正常に動作しています。

私の問題は、最初に「Banglore」と書いて、それを読むと「Banglore」になることです。でも、二度目に「India」と書いて読むと、「Indialore」となる。というわけで、基本的にはテキスト通りに内容が変わっていない、と申し上げております。これを修正する方法を教えてください。

4

1 に答える 1

3

ファイルに書き込んでもコンテンツは削除されませんが、コンテンツが置き換えられるだけです。そのため、「Bangalore」の上に「india」を書き込むと、「Banga」が「India」に置き換えられ、残りは同じままになります。古いコンテンツを新しいコンテンツとともに完全に削除したい場合 は、新しいデータが終了する場所からファイルをtruncate()する必要があります。truncate(text.getBytes().length)

于 2013-04-17T06:42:45.347 に答える