java JFileChooser选择文件和保存文件

简介:

//文件过滤器
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();
                    }

目录
相关文章
|
6月前
|
Java
Java读取txt文件和写入txt文件-多种方法-java读写文件-java读写
Java读取txt文件和写入txt文件-多种方法-java读写文件-java读写
1782 0
|
7月前
|
Java
java中复制文本文件
java中复制文本文件
|
移动开发 Java
关于java中创建文件,并且写入内容
关于java中创建文件,并且写入内容
Java创建文件并写入内容
Java创建文件并写入内容
364 0
|
Java
Java 打开指定文件
Java 打开指定文件
117 0
Java-读取本地txt文件的问题
Java-读取本地txt文件的问题
211 0
|
Java Windows
Java 打开文件的两种方式
import java.awt.Desktop; import java.io.File; import java.io.IOException; public class LnkDemo { public static void main(String[] arg...
1010 0
|
Java
Java 文件重命名
import java.io.File; public class FileRename { public static void main(String[] args) { File oldName = new File("...
1477 0
|
Java
Java 目录和文件的复制
1.复制一个目录及其子目录、文件到另外一个目录 //复制一个目录及其子目录、文件到另外一个目录 public void copyFolder(File src, File dest) throws IOException {   if (src.
1094 0