1

我为文本文件的读写创建了 j2me 应用程序

现在在阅读时,我阅读了一行并将其发送到服务器。之后我想从文本文件中删除该行。

我不知道该怎么做。在某些示例中,我找到了将原始文件内容复制到一个对象中的解决方案,然后从对象中删除该字符串,然后删除原始文件并使用该新对象创建新文件。

我不认为这是一个好方法。还有其他方法吗???

编辑:

实际上问题就像一个应用程序正在文本文件中写入一些数据,而我的另一个应用程序读取一行发送到服务器并删除该行。

现在,如果我采用复制新对象和删除文件并用新对象写入新文件的方法,那么我会发现一个问题

如果文件被删除,那么第一个应用程序找不到该文件,因此它可能会创建只有一个数据的新文件,第二个应用程序将基于新对象创建新文件,因此我的数据将丢失

编辑:

即使我尝试对 RMS 做同样的事情,但是当两个应用程序同时访问相同的 RMS 时,RMS 文件中的所有数据都是清晰的。第一个应用程序打开 RMS 以进行写入,第二个应用程序打开以进行同步和删除。但是在两者都打开RMS时,所有数据都清除了。

是否可以从一个应用程序锁定 RMS 文件?

4

3 回答 3

4

不,你就是这样做的。

您不能从文件的开头删除一行。您需要在没有该行的情况下重新编写文件。

(请注意,这不是特定于 java 的)

于 2011-04-18T05:26:48.703 回答
1

插入记录时,我现在正在为一个特定文件夹中的单个记录创建单个文件,因为该文件由后台应用程序读取并发送到将由应用程序删除的服务器。

所以它解决了文件读写中的并发问题。

我知道这不是好方法,但我没有找到任何其他好的方法。

于 2011-04-23T06:20:28.250 回答
0

大多数文件系统没有删除中间内容的机制。(很确定在 j2me 中就是这种情况)。所以标准做法是打开一个新文件;将旧文件复制到不需要的行所在的位置,跳过它,然后复制文件的其余部分。我知道这听起来不优雅,但事实就是这样:)

于 2011-04-18T05:26:57.103 回答