我有一个看起来像这样的文本文件:
acorn squash 2365989335
alfalfa sprouts 3988549919
almond 9277904615
anchovy 3352461607
anise 0846115239
apple 7827295890
apricot 0662812477
artichoke 5974131818
asparagus 8485010646
继续开展另外几百项。列表中有项目名称,然后是紧邻它的UPC,然后是一个新行,它就像那样继续。
我应该阅读这个文件(foodUPC.txt)并将所有项目放入一个列表供以后使用。我被困在试图将所有这些项目放入列表中。之后,我必须阅读基于其UPC返回项目的所有项目。我也不知道该怎么做。
感谢您的帮助!
答案 0 :(得分:2)
BufferedReader,String.split(...)和HashMap就是您想要的。我会让你把所有这3个放在一起。
答案 1 :(得分:2)
我认为NIO API对此非常方便,因为您可以轻松读取文件中的所有行(看到您的项目由换行符分隔):
List<String> lines = Files.readAllLines( Paths.get("foodUPC.txt"), Charset.forName( "MyCharset" ) /* or Charset.defaultCharset(), although this is not recommended for portable apps! */ );
for( String line : lines ) {
String[] arr = line.split( " " );
// here comes your code
}
问候。
答案 2 :(得分:0)
我会使用hashmap- upc代码是关键,值是名称
获取映射 - 使用正则表达式来分割行
InputStream inputStream;
BufferedReader buffreader;
HashMap<String, String> hm= new HashMap<String,String>();
inputStream= new FileInputStream("foodUPC.txt");
buffreader= new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
while ((line = buffreader.readLine()) != null) {
String[] datas=line.split(" ");[if its a tab use \t]
hm.put(datas[0],datas[1]);
}
在您需要的地方使用此地图。