0

我正在使用 FileNameExtensionFilter函数来过滤文件名,jfilechooser 但扩展名的输入参数是字符串类型。我想从文本文件中读取所有扩展名。过滤器在构造函数中,我正在以 Netbeans 形式开发一种记事本类型的应用程序。解决这个问题或为这个问题提供一些更好的解决方案,我只想使用jfilechooser功能来选择和过滤文件

提前致谢

这是代码。

///////////////FILE FILTER
String str= ""txt","abc","xyz","wxy"; //all extensions from TXTfile

public MainFrame(){
    initComponents();
    fileChooser=new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXTFILES",str,"text");
    fileChooser.setFileFilter(filter);
}

////////////////////////  FILE READER
String readFile() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("ext.txt"));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
        sb.append("\n");
       line = br.readLine();
    }
    return sb.toString();
} finally {
    br.close();
}
4

1 回答 1

0

根据 JLS,FileNameExtensionFilter方法采用“字符串...扩展”,所以我建议在你的代码中修改是,

// all extensions from TXTfile
String[] extensions= {"txt","abc","xyz","wxy"}; 

JFileChooser fileChooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXTFILES",extensions);
fileChooser.setFileFilter(filter);

int returnVal = chooser.showOpenDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " 
+fileChooser.getName(new File("ext.txt")));//or you can use getSelectedFile() that  user has choosen.
    }
于 2013-12-08T02:16:56.343 回答