我正在使用FileNameExtensionFilter
函数来过滤jfilechooser
中的文件名
但扩展的输入参数是String类型。
我想从文本文件中读取所有扩展名。
filter在构造函数中,我正在以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();
}
答案 0 :(得分:0)
根据JLS,FileNameExtensionFilter
方法采用“String ... extensions”,所以我建议你修改代码中的修饰,
// 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.
}