我需要一些关于如何在Java中处理文本文件的建议。我有一个文件,我在顶部有一些数据,然后是一个表。例如,在文件的开头我总共有:
Cars purchased = 1890
Cars returned = 130
然后有一张表,其中包含车辆ID:
id#1 =127974
id#2 =212445
然后是另一张桌子:
table begin:
Customer ID | Price paid | Car brand#1 | Car brand#2 | Car brand#4
id#1
id#2
我必须
任何人都可以向我解释如何在java中解决这个问题的逻辑吗? 我不是要求代码,而是要求一些指南/步骤/伪代码。我无法理解如何将这个文本文件分成3个块并让输入阅读器一次只集中在三个文件中的一个上。例如,汽车ID可以类似于表中的客户端ID,那么可以做些什么来不让输入阅读器读取不必要的信息?
另一件事 - 如果我读取文件,其中部分以制表符分隔而其他部分不是,我该如何确定从哪里开始阅读制表符分隔部分?< / p>
如果文件的开头有Cars purchased = 1890
并且我只需要返回1890,那么我是否必须扫描整个文件?我是否会搜索“购买汽车”字样然后以某种方式访问该值?
然后,当我必须将所有这些放回到表格集中时,我如何知道每个条目将与原始文件中的相关条目匹配?
此外,这不是用于处理单个文件,而是用于提供相同类型的任何文件,假设Car id
,Cars purchased
,Cars returned
等关键名称是相同。
我真的需要帮助来理解如何处理这样的文件。
答案 0 :(得分:4)
&#34;我无法理解如何将此文本文件分成3个块并让输入阅读器一次只关注三个中的一个。&#34;
由于您不知道数据的开始和停止位置,因此您需要按顺序读取文本文件,并且只有在到达所需部分时才开始关注数据。在伪代码中:
while (you haven't gotten to the text that marks the start of a section) {
read a line;
throw the line away;
}
while (you haven't reached the text that marks the end of a section) {
read a line;
do something with the line;
}
您注意到,在我们完成了我们的部分之后,我们不会继续阅读 - 没有必要,除非您想要进一步了解某些内容下来。
您是否应该阅读整篇文章并将其存储起来,或者在处理每个部分时多次阅读?这是一个基于很多因素的设计决策 - 阅读速度,你有多少内存与数据占用量等等。
您如何知道每个条目都与表格数据相符?这取决于你如何存储它。阅读有关一些想法的对象和数据结构。对于初学者来说,阵列通常很容易处理。
答案 1 :(得分:0)
从它的外观看:您正在尝试将数据从文本文档解析为数据表。我建议尝试使用XML格式,并使用Java本机XML解析器(suo imo)或第三方解析器来获取信息。通过使用XML标签,您可以轻松地通过ID搜索汽车并获取价格品牌etcetc ......等属性。
编辑和查看汽车信息会更容易......以下是一个例子:
<cars_purchased='10485'>
<cars_returned='1945'>
<cars>
<id = '1000'>
<brand>ASDF</brand>
<car_model>SOMECARNAME</car_model>
<price>$10000</price_paid>
.......... And so on...
</id>
... More cars here....
</cars>
<client>
<clientID ='1000'>
<client_paid>18424</client_paid>
Whatever info u wanted on the client can go in tags here...
</clientID>
Any other clients....
</client>
从那里使用Java,从这个xml解析数据非常简单,只需按下ID,你就可以从汽车中获得你想要的任何信息以保存到局部变量......
因此,为了找到购买的汽车,只需查找该标签,它将返回值,您不需要搜索整个文件。同样的事情适用于其他任何事情。正在寻找一辆车?只需看看car_id的汽车大块......只找客户?只查看客户端块并搜索正确的ID ...
有关XML文件的更多信息,请查看此处http://en.m.wikipedia.org/wiki/XML ...
此处了解如何使用Javas本机XML管理... http://docs.oracle.com/javase/tutorial/jaxp/intro/index.html
很抱歉没有使用正确的超链接我在手机上,不知道如何手动操作...
希望在阅读完教程后,您可以自己设计解析器并轻松编辑/读取XML文件......