-3

我有一个看起来像这样的文本文件:

acorn squash 2365989335
alfalfa sprouts 3988549919
almond 9277904615
anchovy 3352461607
anise 0846115239
apple 7827295890
apricot 0662812477
artichoke 5974131818
asparagus 8485010646

它继续进行另外几百项。该列表有项目名称,然后是它旁边的 UPC,然后是一个新行,它就这样继续。

我应该阅读此文件(foodUPC.txt)并将所有项目放入列表中以备后用。我被困在试图将所有这些项目放入列表中。稍后,我必须阅读所有商品,然后根据商品的 UPC 退回商品。我也不知道该怎么做。

感谢您的所有帮助!

4

3 回答 3

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
}

问候。

于 2013-01-31T21:44:00.503 回答
2

BufferedReaderString.split(...)HashMap是你想要的。我会让你把这三个放在一起。

于 2013-01-31T21:40:45.787 回答
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]);
}

在你需要的地方使用这张地图。

于 2013-01-31T22:05:28.017 回答