有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何读取整个文件并列出文件中的项目?

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

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

它将继续播放另外几百个项目。列表中有项目名称,然后是紧挨着它的UPC,然后是一个新行,它继续这样做

我应该阅读这个文件(foodUPC.txt),并将所有项目放入一个列表中,以供以后使用。我一直想把所有这些项目都列在一个清单上。之后,我必须阅读所有的商品,并根据其UPC返回商品。我也不知道该怎么做

谢谢你的帮助


共 (3) 个答案

  1. # 1 楼答案

    我会使用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]);
    }
    

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

  2. # 3 楼答案

    我认为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
    }
    

    问候