//文件过滤器
import java.io.File;import javax.swing.filechooser.FileFilter;public class MyFilter extends FileFilter{private String[] filterString = null;public MyFilter(String[] filStrings){this.filterString = filStrings;}public boolean accept(File file){if(file.isDirectory()) return true;for(int i=0; i<filterString.length; ++i)if(file.getName().endsWith(filterString[i]))return true;/* 返回要显示的文件类型 *//** File.isDirectory()测试此抽象路径名表示的文件是否是一个目录*/return false;}public String getDescription() {String ss = "";for(int i=0; i<filterString.length; ++i)ss += " *" + filterString[i];return("Txt Files(" + ss + ")"); //返回显示文件类型的描述 } }
//文件的选择
JFileChooser jfc = new JFileChooser();//设置文件的过滤器String[] filterString = {".cpp", ".c"};MyFilter filter = new MyFilter(filterString);//获取jar包位置,设置JFileChooser当前路径String jarFilePath = Main.class.getProtectionDomain().getCodeSource().getLocation().getFile();try {jarFilePath = URLDecoder.decode(jarFilePath, "UTF-8");} catch (UnsupportedEncodingException ex) {ex.printStackTrace();}jfc.setCurrentDirectory(new File(jarFilePath));jfc.setFileFilter(filter);jfc.showOpenDialog(null);File fl = jfc.getSelectedFile();if(fl != null){String code = "";try {BufferedReader br = new BufferedReader(new FileReader(fl));String newLine = null;boolean flag = true;while((newLine=br.readLine()) != null){}} catch (FileNotFoundException ex) {ex.printStackTrace();} catch (IOException ex) {ex.printStackTrace();}}
//文件的保存
JFileChooser jfc = new JFileChooser();String[] filterString = {".txt"};//设置文件的过滤器MyFilter filter = new MyFilter(filterString);//获取jar包位置,设置JFileChooser当前路径String jarFilePath = LexicalAnalyzer.class.getProtectionDomain().getCodeSource().getLocation().getFile();try {jarFilePath = URLDecoder.decode(jarFilePath, "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}jfc.setCurrentDirectory(new File(jarFilePath));jfc.setFileFilter(filter);jfc.showSaveDialog(null);File fl = jfc.getSelectedFile();OutputStreamWriter osw;try {osw = new OutputStreamWriter(new FileOutputStream(fl));String text = textPane.getText();osw.write(text, 0, text.length());osw.flush();osw.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}