【问题标题】:Java tabs ("\t") not working using FileWritterJava 选项卡 ("\t") 无法使用 FileWritter
【发布时间】:2015-11-22 19:23:42
【问题描述】:

如您所见,在每个文本出现一个选项卡后,一切正常,但在第三个选项卡(见输出)之后,它会生成一个空格而不是一个选项卡。

fileWriter = new FileWriter(indexFile, true);
fileWriter.append(id).append("\t");
fileWriter.append(String.valueOf(idx)).append("\t");
fileWriter.append(String.valueOf(pageCount)).append("\t");
fileWriter.append(postal.toUpperCase()).append("\t"); <-- this one
fileWriter.append(address.toUpperCase());
fileWriter.append("\r\n");

我的输出:

00000347    1   1   FB-6666 DUMMY STREET 1 LAT

问题出现在“FB-6666”之后。

对此有什么想法吗?

【问题讨论】:

标签: java string file tabs filewriter


【解决方案1】:

不,它确实正在生成一个选项卡 - 只是您用来查看文件的任何内容都决定通过将选项卡与某个边界或其他边界对齐来处理选项卡。如果您将postal 设为FB-6666x,我怀疑您会看到更大的空间。

根本不是文件内容的问题。

如果您想在列之间强制使用一定数量的空格,则需要写入那么多空格。或者,查看文件的其他内容...

【讨论】:

    【解决方案2】:

    制表位不能以这种方式工作。正如wikipedia article 所说,

    制表位是手动设置的,按制表位键会使笔架转到下一个制表位。在计算机上的文本编辑器中,同样的概念通过自动、固定的制表位简单地实现。

    这意味着制表符将停止在文本文件中的预定义位置,而不是在我们说插入特定数量的空格所需的空间之后。

    【讨论】:

      【解决方案3】:

      我保证正在编写一个选项卡 - 为了让自己相信这一点,您应该在十六进制编辑器中打开生成的文件并查看该位置的值,或者在选项卡之前的值中添加另一个字符并查看输出格式发生变化。

      【讨论】:

      • 谢谢!我checked 它会生成一个 [0x09] HEX,它代表一个制表符。
      • @Kefirchiks 没问题,请接受其中一个答案并为您认为有帮助的答案投票
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 2010-12-10
      相关资源
      最近更新 更多