当前位置: 首页 > 知识库问答 >
问题:

正在文件末尾添加一个额外的行

荀振国
2023-03-14

将数据写入字符串生成器的逻辑,在由于append(“\n”)而迭代最后一条记录之后,将添加一个我不需要的新空行。

       public static void main(String[] args) {
            for(int i=0;i<5;i++){
            StringBuilder d = new StringBuilder();
            d.append("sampledata")
            .append("\n");
            System.out.print(d);
        }
      writeFile(d,filePath);
    }

共有3个答案

姚烨
2023-03-14

您必须使用trim()函数从StringBuilder中删除最后一个空格。

class Main {
    public static void main(String[] args) {
        for(int i = 0; i < 5; i++){
            StringBuilder d = new StringBuilder();
            d.append("sampledata");
            if(i == 4)
            {
                d.toString().trim();
            }
            else
            {
                d.append("\n");
            }
            System.out.print(d);
        }
    }
}
巢安澜
2023-03-14

文件末尾的“空行”实际上不是空行。如下图所示,此处的文件大小为零字节。为了在文件中存在一行,它必须以两个字节的CR LF终止,或者。。。文本需要添加我们的无行终止。如果未添加行终止符,则该“空行”实际上为空,接下来是EOF。

如果使用文件读取器的任何实现,readLine()函数将仅获取API中指示的终止行:

在这段代码中,没有在末尾添加额外的行。代码所做的唯一一件事就是向行中添加行终止字符。通过检查以下条件,可以防止终止最后一行:

int LOOP_MAX = 5;
for (int i = 0; i < LOOP_MAX; i++) {
    StringBuilder d = new StringBuilder();
    d.append("sampledata");
    if (i != LOOP_MAX -1) {
        d.append("\n");
    }
    System.out.print(d);
}

无论您是否检查此条件,行数都将相同。唯一的区别是最后一行是否将终止与CR LF或只是EOF。仅此而已。

琴英华
2023-03-14

您可以在最后一次迭代中使用if条件。

 public static void main(String[] args) {
    for (int i = 0; i < 5; i++) {
      StringBuilder d = new StringBuilder();
      d.append("sampledata");
      if (i == 4) {
        break;
      } else {

        d.append("\n");
      }
      System.out.print(d);
    }

  }

输出将是

sampledata
sampledata
sampledata
sampledata
 类似资料:
  • 将数据写入字符串生成器的逻辑,在迭代由于追加(\n)的最后一条记录后,添加了一个我不需要的新空行。

  • 我正在使用Goland来编写我的grpc应用程序。生成我的原型文件后,文件末尾不存在尾随换行符。有没有办法在 IDE 中启用此功能?

  • 问题内容: 我有一个文本区域,其中包含一些文本,我想再次向其中添加一些行(第一行+我要添加的其他行),但是它不起作用。 我现在的操作方式将擦除旧文本并仅显示新行。 问题答案: 代替使用,使用。 将给定的文本追加到文档末尾。如果模型为null或字符串为null或为空,则不执行任何操作。 这会将文字添加到您的末尾。 另一个选择是使用来从中获取文本,然后操作String(添加或删除或更改String),

  • 注意,这个空间只在最末端可见,因为我不想改变布局。我可以使recycerview有一个50dp的边际底部,但我不想这样做。

  • 问题内容: 我正在尝试提供获取JSON或XML响应的选项。 JSON可以正常工作,但是当我查看XML时,出现错误。 http://lmsapi.com/?api_key=fba9e59d7af86b239e82581780ff987e&format=json http://lmsapi.com/?api_key=fba9e59d7af86b239e82581780ff987e&format=xml

  • 我需要创建一个组合框,可以有一个按钮在其列表视图的结尾。该列表可以添加或删除项目,当项目数量超过5个时,会显示一个滚动条。此外,当选择一个项目时,该列表视图不会自动关闭。 如何像下面的截图一样添加一个按钮“新项目”? 这是源代码: helloApplication.java 你好控制器.java 您好,查看.fxml