的FileReader;选择文件扩展名

时间:2014-09-05 15:34:02

标签: java swing filefilter

我刚用Java制作了一个文件阅读器。我将它用于游戏Hangman,现在用户可以选择他们想要使用的单词列表/词典。

效果很好,但是当用户必须选择文件时,他可以选择所有类型的文件。但是,我希望他们只打开.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);
}

1 个答案:

答案 0 :(得分: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。