2017-04-22 69 views
-1
Vegetable Fruit  Desert 
Carrot  banana  cake 
Cucumber apple  ice cream 
Lettuce  orange  cookies 
Broccoli grapes  donuts 

我想知道是否有一種特定的方式來編寫一個程序,以便只有水果列表存儲在輸入文件的數組列表中。所以,基本上我想要它做的是打印到屏幕上: enter image description here從輸入文件打印列表到屏幕

所以,這是我到目前爲止,我真的不知道從哪裏去這裏。任何東西將不勝感激。

public static void main(String[] args) throws IOException { 
     String line; 
     ArrayList<String> names = new ArrayList<>(); 
     String filename = "list.txt"; 
     File inputFile = new File(filename); 
     Scanner in = new Scanner(inputFile); 
     FileReader file = new FileReader(inputFile); 
     BufferedReader reader = new BufferedReader(file); 
     line = reader.readLine(); 
     System.out.println(line); 
     while((line = reader.readLine()) != null) 
      if(line.equals("Vegetable Fruit  Desert")){ 
       break; 
      } 
     while((line = reader.readLine()) != null){ 
      names.add(line); 
     } 
     in.close(); 
     reader.close();  
    } 
} 
+0

爲什麼你要同時創建'Scanner'和'BufferedReader'? – aioobe

回答

2

只需分割線條並存儲第二個元素,即水果元素。我在第二個while循環中修改了代碼:

public static void main(String[] args) throws IOException { 
    String line; 

    ArrayList<String> names = new ArrayList<>(); 
    String filename = "list.txt"; 
    File inputFile = new File(filename); 
    FileReader file = new FileReader(inputFile); 
    BufferedReader reader = new BufferedReader(file); 
    // remove first line 
    line = reader.readLine(); 

    while((line = reader.readLine()) != null){ 
     String[] words = line.split("\\t+"); 
     names.add(words[1]); 
    } 

    System.out.println(names); 

    reader.close(); 
} 
+0

這將只打印輸入文件的第一行: 蔬菜\t水果\t \t沙漠 – bacon9

+0

我修改了你的代碼。試試看。 –

+0

[蛋糕,奶油,\t \t橙餅乾\t \t,\t \t葡萄甜甜圈\t] 它印刷這個到屏幕上。 – bacon9