【发布时间】:2012-10-04 07:34:53
【问题描述】:
我有一个包含数据的大文件(~8Gb / ~8000 万条记录)。每条记录有 6-8 个属性,由单个选项卡拆分。我想让初学者在另一个文件中复制一些给定的属性。所以我想要一个比上面更优雅的代码,例如,如果我只想要总共 4 个令牌中的第二个和最后一个:
StringTokenizer st = new StringTokenizer(line, "\t");
st.nextToken(); //get rid of the first token
System.out.println(st.nextToken()); //show me the second token
st.nextToken(); //get rid of the third token
System.out.println(st.nextToken()); //show me the fourth token
我提醒一下,这是一个巨大的文件,所以我必须避免任何多余的 if 检查。
【问题讨论】:
-
如果您只是要求“更优雅的代码”,也许您应该查看codereview.stackexchange.com
-
我不会为此使用 Java。我可能会使用
cut。 -
您想要更优雅的代码还是更快的代码?在这种情况下,更优雅可能意味着更慢。较低级别、不太优雅的代码可能意味着稍微快一些。
-
@JBNizet 你说得对,我需要速度。好吧,目前我正在处理我的数据的一个非常小的子集(大约 200 条记录),除了我的“更优雅的代码”问题之外,我还遇到了一个“错误:null”,我不明白它来自哪里,如果这敲响了任何铃声。
标签: java tokenize stringtokenizer