4

やあ、私はFileWriterSDカードにテキストを書き込むために使用しています。

FileWriter write = new FileWriter(Environment.getExternalStorageDirectory().toString() + "text.txt", true);
write.append("This is first written");
write.close();

今、私が他のテキストを書くとき

FileWriter write = new FileWriter(Environment.getExternalStorageDirectory().toString() + "text.txt", true);
write.append("This is second written");
write.close();

そして、このファイルを見てください。

This is first written
This is second writtn

さて、私の質問は、この 2 番目のテキストを記述して最初のテキストの上に配置するにはどうすればよいかということです。シーク オプションが見つかりません。私は最初にテキストを読むことができ、新しいファイルを書き込んで最後に読んだテキストを置くことができることを知っていますが、他の解決策はありますか?

4

3 に答える 3

1

これを行う Android でデフォルトで利用可能なクラスを知りません。

あったとしても、考えてみれば、現在のコンテンツを最初に読み取り、追加するデータに追加してから書き戻すということを実行することだけが機能する可能性があります。

最初にファイルを開く/読み取る/閉じることでこれを行う拡張クラスを作成できます。次に、以前のデータが追加された新しいデータを書き込む前に、 set toFileWriterで再度開きます。appendfalse

a を使用するという Sparky のアイデアはRandomAccessFile、データを書き込む前に少なくとも最初にシークできるため (再度開く前に最初にファイルを閉じる必要がなくなります)、別の方法です。ただし、最初にシークするため、最初に以前のデータを読み取る必要があり、書き込みによって既存のデータが邪魔にならないように「プッシュ」されることはありません。単に上書きされます。

于 2012-02-20T21:39:09.860 に答える
1

ユーザーが他のプログラムを使用してファイルを表示するのではなく、ファイルの表示を制御しているのはあなたですか? もしそうなら、ファイルの内容を逆に表示するだけではどうですか?

于 2012-02-20T21:45:46.600 に答える
0

ここで説明します。

ファイルにデータを書き込んだとしましょう。データは次のようになります。

 21.02.2012, 11:43<#>-<#>88<#>-
 21.02.2012, 13:12<#>-<#>80<#>-
 21.02.2012, 19:36<#>-<#>61<#>-
 22.02.2012, 07:15<#>-<#>50<#>-
 23.02.2012, 12:14<#>-<#>44<#>-

今私のアプリで私はテキストを読んで<#>でそれを分割します

 String split = readen.split("<#>");

WebViewを使用してテキストを表示し、そのように見えるテーブルにデータを表示したい

----------------------
| 23.02.2012         |
----------------------
| 12:14 | - | 44 | - |
----------------------

----------------------
| 22.02.2012         |
----------------------
| 07:15 | - | 50 | - |
----------------------

----------------------
| 21.02.2012         |
----------------------
| 19:36 | - | 61 | - |
| 13:12 | - | 80 | - |
| 11:43 | - | 88 | - |
----------------------

行を読み取り、日付がその前の日付と同じ場合は同じテーブルに配置します。それ以外の場合は、テーブルを閉じて新しいデータを開き、新しいデータを配置します。もう一度読み取り、日付が同じテーブルに配置される前のデータと等しいかどうかを確認します。他の人は再び新しいテーブルを閉じて開きます...これは構築するのはそれほど難しいことではありませんが、これを構築して元に戻すのは本当に難しいです:Dなので、ファイル内のデータを変更したいので、元に戻すのに煩わされる必要はありません、simpyはデータを読み取り、テーブルを作成します

于 2012-02-21T10:56:43.833 に答える