【问题标题】:New line in reading file from user input从用户输入读取文件的新行
【发布时间】:2016-06-10 18:47:14
【问题描述】:

我想要做的是在我的文本文件中将记录写入新行。每次有人在我的程序上单击注册时,我都想调用一个打开文件并添加记录的方法。这就是我现在拥有的:

打开文件:

try {
    l = new Formatter("chineses.txt");
    System.out.println("Did create");
} catch (Exception e){
    System.out.println("Did not create");
}

添加记录:

public void addRecord(){
    l.format("%s", nameField.getText());
}

每次我在名称字段中输入名称并在我的 GUI 中单击注册时,它总是会替换文本文件第一行中的任何内容。 我怎样才能让它写入第二行,同时保留第一行的内容?

【问题讨论】:

  • 您是否考虑过改变您处理问题空间的方式?这将是对 Java 内置 API 的出色使用,称为 Properties。 Properties Java API, Java Properties Examples 这些将大大简化您的文字!您可以通过多种方式使用它们!甚至创建一个类来为您从类转换为属性!
  • 为什么不使用带有附加功能的 PrintWriter。

标签: java file user-interface io


【解决方案1】:

您是否考虑过使用 RandomAccessFile?你可以找到最后,然后写。

【讨论】:

    【解决方案2】:

    根据javadoc,使用单个字符串参数创建的格式化程序将在写入文件之前首先清空文件(截断为零长度)。这就是您的文件未附加到的原因。程序首先删除文件中的所有内容,然后在您调用 l.format() 时将新内容写入其中。

    您可能想要做的是使用Formatter() 将数据格式化为字符串。打开记录文件进行附加,然后将该字符串写入文件。 This link 应该有很多关于你如何做到这一点的细节。 (我用谷歌搜索“java 打开并写入文件”以找到该资源)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多