Java 选项卡(“\t”)无法使用 FileWritter
Java tabs ("\t") not working using FileWritter
如您所见,在每个文本出现一个制表符后,一切正常,但在第三个制表符(见输出)之后,它生成一个 space 而不是一个制表符。
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"之后。
对此有什么想法吗?
不,它确实是生成一个标签 - 只是无论您用来查看文件的是什么,都决定通过将标签与某个边界或其他边界对齐来处理标签。如果你让 postal
值 FB-6666x
我怀疑你会看到更大的 space.
这根本不是文件内容的问题。
如果要在列之间强制执行一定数量的 space,则需要编写那么多 space。或者,可以通过其他方式查看文件...
Tabstops 不是这样工作的。正如 wikipedia article 所述,
Tab stops are set manually, and pressing the tab key causes the carriage to go to the next tab stop. In text editors on a computer, the same concept is implemented simplistically with automatic, fixed tab stops.
这意味着制表位将停在文本文件中的预定义位置,而不是在插入特定数量的 space 之后 space 之后。
它正在写一个制表符,我保证 - 要让自己相信这一点,您应该在十六进制编辑器中打开生成的文件并查看该位置的值,或者在制表符之前的值中添加另一个字符并查看输出格式如何变化。
如您所见,在每个文本出现一个制表符后,一切正常,但在第三个制表符(见输出)之后,它生成一个 space 而不是一个制表符。
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"之后。
对此有什么想法吗?
不,它确实是生成一个标签 - 只是无论您用来查看文件的是什么,都决定通过将标签与某个边界或其他边界对齐来处理标签。如果你让 postal
值 FB-6666x
我怀疑你会看到更大的 space.
这根本不是文件内容的问题。
如果要在列之间强制执行一定数量的 space,则需要编写那么多 space。或者,可以通过其他方式查看文件...
Tabstops 不是这样工作的。正如 wikipedia article 所述,
Tab stops are set manually, and pressing the tab key causes the carriage to go to the next tab stop. In text editors on a computer, the same concept is implemented simplistically with automatic, fixed tab stops.
这意味着制表位将停在文本文件中的预定义位置,而不是在插入特定数量的 space 之后 space 之后。
它正在写一个制表符,我保证 - 要让自己相信这一点,您应该在十六进制编辑器中打开生成的文件并查看该位置的值,或者在制表符之前的值中添加另一个字符并查看输出格式如何变化。