2009-04-11 42 views
2

我的问题与我之前的问题(How to display data from txt file in specific format)有关。以特定格式在txt文件中存储数据

我想知道是否可以在第一个地方,以特定格式存储txt文件的数据,而不是先存储它,然后再次检索它并以特定格式显示它?

例如而不是在txt文件存储数据这样

 
Jessica 
Walking 
20 minutes 
Matthew 
Run 
10 minutes 

我想把它保存在txt文件以这种格式

 
Jessica Walking 20 minutes 
Matthew Run  10 minutes 

回答

3

关于到阿迪尔的回答您的评论:

感谢adeel825,但是我不知道在哪里把“\ t”..到目前为止我使用这种方法:新的PrintStream(fout).println(name);新的PrintStream(fout).println(练习);新的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); 

这句法可以看看,如果你很拜占庭不习惯它.. basiclly每个“%30s”表示填充字符串参数,使它至少有30个字符宽。如果任何值为30个或更多字符宽,则结果看起来不正确。如果您事先不知道,则必须遍历每列中的值以确定列的宽度。

1

没有与存储数据的这种方式没有问题。所有你需要做的就是写出值并用制表符分隔“\ t”

+0

谢谢adeel825,但是我不知道在哪里把 “\ t” 的..到目前为止,我使用此方法: 新的PrintStream(fout).println(name); \t \t \t new PrintStream(fout).println(exercise); \t 新的PrintStream(fout).println(“10分钟”); – Jessy 2009-04-11 14:26:44

+0

你会做一些像println(“杰西卡\ tWalking \ t20分钟”)。 – adeel825 2009-04-11 14:30:40

+0

@ Jessy-看到我对你在这个评论中留下的信息的新的回答(它超过了我可以适应的评论,我认为它需要作为回答解决) – Kip 2009-04-11 14:38:01

0

你需要“手动”你的格式。要做到这一点最好的办法是在某处包装你的文件的访问代码,并建立类似:

OpenFile() 
CreateEntry(name, type, time) 
相关问题