我的问题与我之前的问题(如何以特定格式显示 txt 文件中的数据)有关。
我想知道是否有可能首先以特定格式将数据存储在 txt 文件中,而不是先存储它然后再次检索它并以特定格式显示它?
例如,而不是像这样将数据存储在 txt 文件中
杰西卡 步行 20分钟 马修 跑 10分钟
我想以这种格式将它存储在txt文件中
杰西卡步行 20 分钟 马修跑 10 分钟
我的问题与我之前的问题(如何以特定格式显示 txt 文件中的数据)有关。
我想知道是否有可能首先以特定格式将数据存储在 txt 文件中,而不是先存储它然后再次检索它并以特定格式显示它?
例如,而不是像这样将数据存储在 txt 文件中
杰西卡 步行 20分钟 马修 跑 10分钟
我想以这种格式将它存储在txt文件中
杰西卡步行 20 分钟 马修跑 10 分钟
关于您对阿德尔回答的评论:
谢谢adeel825,但是我不知道把“\t”放在哪里。到目前为止,我使用这个方法:new PrintStream(fout).println(name); 新的 PrintStream(fout).println (练习); new PrintStream(fout).println("10 分钟");
首先,不要在new PrintStream(fout)
每次打印时都调用“”。做这个:
PrintStream ps = new PrintStream(fout);
ps.print(name);
ps.print('\t');
ps.print(exercise);
ps.print('\t');
ps.print(time);
ps.println();
或者简单地说:
PrintStream ps = new PrintStream(fout);
ps.println(name + '\t' + exercise + '\t' + time);
编辑
回应您的评论:
还有一个问题……有些名字太长了,需要更多标签……我放了 ps.print('\t','\t'); 但它似乎不起作用..
如果这是一个问题,听起来您正试图以您想要显示它们的方式存储它们。我曾假设您正在尝试以易于以编程方式解析的方式存储它们。如果您想将它们存储在列中,我建议使用空格而不是制表符填充。
如果您知道所有列的宽度都将小于 30 个字符,您可以使用 printf 执行以下操作:
ps.printf("%30s%30s%30s%n", name, exercise, time);
如果您不习惯,该语法可能看起来很拜占庭式。基本上每个“%30s”都意味着填充字符串参数,使其至少有 30 个字符宽。如果任何值的宽度为 30 或更多字符,您的结果将看起来不正确。如果您无法提前知道,则必须遍历每列中的值以确定列需要多宽。
以这种方式存储数据没有问题。您需要做的就是写出值并用制表符“\t”分隔它们
您需要“手动编码”您的格式。最好的方法是将你的文件访问代码包装在某个地方,并创建如下内容:
OpenFile()
CreateEntry(name, type, time)
如果要写入固定长度的记录,可以使用 String.[format][1] 方法
ps.println(String.format("%20s%20s%20s",name,exercise,time))
这将创建一个在每个字段中包含 20 个字符的表。您可以在此处阅读语法
[1]: http: //java.sun.com/javase/6/docs/api/java/lang/String.html#format (java.lang.String, java.lang.Object...)