我的问题与我之前的问题(How to display data from txt file in specific format)有关。
我想知道是否可以在第一时间以特定格式存储txt文件中的数据而不是先将其存储然后再次检索并以特定格式显示?
e.g。而不是像这样存储txt文件上的数据
Jessica Walking 20 minutes Matthew Run 10 minutes
我想以这种格式将其存储在txt文件中
Jessica Walking 20 minutes Matthew Run 10 minutes
答案 0 :(得分:3)
关于你对阿德尔答案的评论:
感谢adeel825,但是我不知道在哪里放“\ t”..到目前为止我使用这个方法:new PrintStream(fout).println(name); new PrintStream(fout).println(exercise);新的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或更多字符宽,则结果将不正确。如果您无法提前知道,则必须遍历每列中的值以确定列的宽度。
答案 1 :(得分:1)
以这种方式存储数据没有问题。您需要做的就是写出值并用制表符“\ t”
分隔它们答案 2 :(得分:0)
您需要对您的格式进行“手动编码”。最好的方法是将文件访问代码包装在某处,并创建类似:
的内容OpenFile()
CreateEntry(name, type, time)
答案 3 :(得分:0)
如果要编写固定长度的记录,可以使用String。[format] [1] method
ps.println(String.format("%20s%20s%20s",name,exercise,time))
这将创建一个每个字段中包含20个字符的表。您可以阅读语法here
[1]:http://java.sun.com/javase/6/docs/api/java/lang/String.html#format(java.lang.String,java.lang.Object ...)