java - 如何在 Java 中写入文本文件时插入新行

标签 java

我想创建一个简单的程序(用Java)来编辑文本文件 - 特别是一个在文本文件中的随机位置插入任意文本片段的程序。

旧文本文件:

Noodles
Cereal
Tomato
Carrot
Fish
Meat

输出:

Please insert new record:
1
Cornflake

Please insert new record:

新文本文件:

Noodles
Cereal
Tomato
Carrot
Fish
Meat
Cornflake

我检查我的文本文件并将其插入到我的文本文件中,但是当我再次运行程序时,例如,我想插入冰淇淋,那么它应该添加在 Jade 米片之后,但它用冰淇淋替换 Jade 米片。但我该如何解决这个问题呢?

Java:

String INPUT_PROMPT ="Please insert new record:";
BufferedReader reader = new BufferedReader
                    (new InputStreamReader (System.in));
            line = reader.readLine();

while(!line.equals("x"))
{ 
          switch(line)
          {       
              case "1":
              line = reader.readLine();  

                    FileWriter fw=new FileWriter(inFile);
                    BufferedWriter bw=new BufferedWriter(fw);
                    PrintWriter pw=new PrintWriter(bw);

                    for(int k=0; k< prdct.size(); k++)
                    {
                        pw.println(prdct.get(k).toString());
                    }
                    pw.write(line);
                    pw.write("\n");
                    pw.close();    
                    break;
          }  
            System.out.println(INPUT_PROMPT);
            line = reader.readLine();  


}

最佳答案

这个问题可能与许多其他问题重复,但是您需要以追加模式打开 FileWriter,这是通过将 true 作为第二个参数传递来完成的构造函数:

FileWriter fw = new FileWriter(inFile, true);

来自Javadoc for FileWriter(File file, boolean append) :

Constructs a FileWriter object given a File object. If the second argument is true, then bytes will be written to the end of the file rather than the beginning.

关于java - 如何在 Java 中写入文本文件时插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998795/

相关文章:

java - 如何在 iText 中从 pdf 的第一页创建图像

java - 将工作委托(delegate)给其他人的单元测试类的最佳方法是什么?

用于防御性编码的 Wil Shipley 的 `IsEmpty` 方法的 Java 实现

java - 尝试从 JSONObject 中获取 JSONArray 失败

java - JNI、C++及其标准库

java - 通过文件名过滤文件选择器

java - 使用JAVA方法读取大文本文件

java - 我想在 android webview 到达底部时显示一个按钮

java - Gradle 构建后未导入包(org.json)——没有错误或反馈

Java、StaX 简单代码但出现解析错误、文件过早结束