【问题标题】:Java I/O to a .txt fileJava I/O 到 .txt 文件
【发布时间】:2014-09-10 16:27:13
【问题描述】:

我正在学习 Java,到目前为止,我已经能够在 Google 以及跟踪和错误/阅读的帮助下解决我的问题。但我在这里有点迷失:

我有一个名字列表。我有一个将字符串作为参数并从列表中删除该名称并返回其余名称的方法。我创建了一个包含所有名称的文件。删除名称后,我希望它在一周内保持删除状态,然后在下周开始时,我希望再次列出所有名称。 我最初的想法是使用数组,但这不起作用,因为它会在程序执行结束时从内存中清除。所以我尝试将数据写入文件并每次都对其进行读写。这是我目前的问题:

Person1,Person2,Person3.... 当我删除 person1 时,我只将文件重写为 person2 和 person3。然后,如果删除了 person2,我将文件重写为仅 person3。这样做的问题是我必须按顺序删除,否则之前删除的字符串将被重写。我想在选择该字符串时从列表中删除一个字符串而不影响其余字符串。

(这是我第一次在这里发帖,如果有什么遗漏的请告诉我,我会尽力改进我的问题。我没有发布任何代码,因为我刚决定重新开始,但代码没有反正也没多大意义。)

【问题讨论】:

  • 告诉我们你做了什么。你卡在哪里了。没有人会做你的功课
  • 这不是作业。我这样做是因为我选择这样做。

标签: java string file io


【解决方案1】:

如果您想从头开始,可以使用serialization 功能。

创建一个类,它有一个列表变量,可以保存 Person1、Person2、Person3...。 使用序列化,您可以将对象存储到具有这些名称列表的文件中。 当您再次读取对象(反序列化)时,您将拥有所有可以从中删除特定名称并再次将对象存储在文件中的名称。

【讨论】:

  • 这听起来很有趣,可能是一个解决方案。我会试一试。谢谢。
【解决方案2】:

我建议您制作 2​​ 个文件,一个保留您想要保留的任何名称,另一个保留您想要删除的名称。因此,既然您已经有了 delete 函数,您可以编写一个 add 函数来将名称添加到字符串中。所以当你运行delete name函数时,你把名字放到delete文件中,然后在下周初,将delete文件中的所有名字重新添加到原始文件中。 如果您有更多问题,请告诉我。

【讨论】:

  • 是的,我正在这样做。但我被困在删除部分。我删除的方式是用不需要删除的名称列表重写文件,所以.....如果我们有 A、B、C 和 D。如果我删除 C,文件将是重写为 A、B 和 D。但是现在如果 I A 和 C:当 A 被删除时,它将被重写为 B、C 和 D,当 C 被删除时,文件变为:A、B 和 D。我想要 A删除后保持删除状态,删除其他字符串时不会重新出现。我说得有道理吗?
  • 是的,我明白,我假设您有一个保留所有名称的列表,所以当您删除时,您只需从原始文件中删除。这是解决方案,在您删除之前,假设您使用数组,读取从先前删除中保存的文件,然后从那里删除。因此,如果您有 A、B、C、D,则在删除 D 后,您有 A、B、C 并将其保存到文件中。然后下一次,你读取你将拥有 A、B、C 的文件,然后删除给你 A、B 的 C 并再次将其保存到文件中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-05
  • 1970-01-01
相关资源
最近更新 更多