java - 如何用 Java 中的新输入替换文本文件的第一行?

标签 java

我是 Java 新手,我正在编写一个小程序来学习和理解 Java。 用户应该能够创建一个项目,稍后对其进行编辑并添加处理该项目的成员。 所有这些都应该使用 Java 插入到文本文件中(通过控制台)。 我设法创建它并向其中添加成员,但编辑它不起作用。

对于编辑,它应该删除前七行并用新输入覆盖它。 文本文件的其余部分不应更改。

我的所有尝试最终都导致整个文件被新输入覆盖。

不确定整个内容在一个字符串中而不是七个单独的字符串是否有区别。

File file = new File("C://Users/Prakt1/Desktop/projektverwaltung.txt");
    String content = ("ID: " + (id) + LINE_SEPARATOR + "Projektname: " + (projektname) + 
    LINE_SEPARATOR + "Beschreibung der Projektaktivitäten: " + (beschreibung) + LINE_SEPARATOR + 
    "Beginn: " + (beginn) + LINE_SEPARATOR + "Ende des Projekts: " + (ende) + LINE_SEPARATOR +  "Dauer des Projekts: "
    + (diffDays) + " Tage" +  LINE_SEPARATOR);  

这个主题可能是重复的(我想打开一个文本文件并在java“这里”>这里编辑特定行,但是类似问题的答案并没有让我找到解决方案。 对于刚接触 Java 的人来说,当我更改一行代码时,很难判断代码是否适合我 或者说它完全不同。

非常感谢您的帮助, 克里斯

最佳答案

如果您的目标是用新内容替换文件的前七行,并保持文件的其余部分相同,则只有一种可靠的方法可以做到这一点。

  1. 将整个文件逐行读取到内存中。这可以是 ArrayList或任何其他保留顺序的数据结构。

  2. 将 7 行(数据结构的前 7 项)更改为您想要的新 7 行。

  3. 再次逐行写出整个文件。

关于java - 如何用 Java 中的新输入替换文本文件的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692414/

相关文章:

JAVA:经过这么多时间后中断线程

java - 哪个性能更好: for each or iterator in LinkedList?

java - 无法构建 Android 应用程序 - 重复的 zip 条目

java - Java 中 Bouncy CaSTLe 的性能

java - 错误 : Classes that should be initialized at run time got initialized during image building: org. conscrypt.Conscrypt 被无意初始化

java - android/java - 当没有对实例的引用时如何得到通知

java - 找不到包 org.springframework.web.servlet

java - Spring:当收到来自 Postman 的请求时,BasicHttp 无法与 jdbcAuthentication 一起使用

java - 一个函数应该分担两个职责还是我们应该使用状态检查器函数

java - 如何获取 Android 中大量按钮的引用?