2014-09-05 47 views
0

我剛剛在Java中創建了一個文件讀取器。我將把它用於Hangman遊戲,現在用戶可以選擇他們想使用哪個單詞列表/字典。FileReader;選擇文件擴展名

它工作的很好,但是當用戶必須選擇一個文件時,他可以選擇所有類型的文件。但是,我希望他們只能打開.txt文件以確保程序的正常運行。我必須使用哪些代碼才能讓用戶只能打開文本文件?

這是該文件讀取方法我用:

private static ArrayList readData(File someFile) 
{ 
    String data; 
    ArrayList<String> aStringArrayList = new ArrayList<String>(); 

    try  // men is verplicht een try block te gebruiken. 
     { 
      FileReader filereader = new FileReader(someFile.getAbsolutePath()); 
      JOptionPane.showMessageDialog(null, "Gekozen woordenlijst is: " 
              + someFile.getAbsolutePath()); 
      BufferedReader bufferedreader = new BufferedReader(filereader); 

      while((data = bufferedreader.readLine()) != null) 
      { 
       System.out.println("\nIngelezen data is " + data); 
       aStringArrayList.add(data); 
      } 
      filereader.close(); 
     } 
     catch (FileNotFoundException e) 
     { 
      JOptionPane.showMessageDialog(null, "Got an FileNotFoundException: " 
               + e.getMessage()); 
     } 
     catch (IOException e) 
     { 
      JOptionPane.showMessageDialog(null, "Got an IOException: " 
               + e.getMessage()); 
     } 
    return (aStringArrayList); 
} 
+5

FilenameExtensionFilter:http://docs.oracle.com/javase/8/docs/api/javax/swing/filechooser/FileNameExtensionFilter.html – ControlAltDel 2014-09-05 15:39:17

+0

@ControlAltDel我必須說 - 如果你的評論不是答案,那麼我不明白這個問題。 – 2014-09-05 16:28:45

回答

1

嘗試使用一個JFileChooser用的FileNameExtensionFilter。

事情是這樣的:

JFileChooser chooser = new JFileChooser(); 
FileNameExtensionFilter filter = new FileNameExtensionFilter("txt files", "txt"); 

chooser.setFileFilter(filter); 

int returnVal = chooser.showOpenDialog(parent); 
if(returnVal == JFileChooser.APPROVE_OPTION) { 
    // do your stuff here 
} 

父母在這裏爲你的JFrame。