Gravar opção do usuario no JFileChooser

Olá! Alguém sabe se existe uma maneira de quando o usuario escolher a opção para abrir um diretorio pelo JFileChooser, a opção do diretorio ficar de alguma maneira guardada para q quando ele fosse abrir novamente o diretorio, o FileChooser jah abrisse naquele caminho que foi anteriormente acessado?

Uma vez eu fiz algo assim:

    public static void main(String[] args) {
        Properties prop = new Properties();
        //diretório onde lê o arquivo de propriedade
        String path = "C:\\file.properties";
        String caminho = "";
        try {
            //indica o arquivo 
            prop.load(new FileReader(path));
            //indica a propriedade a ser lida
            caminho = prop.getProperty("file.chooser");
        } catch (IOException e) {
            e.printStackTrace();
        }
        //abre o file chooser passando o caminho indicado no arquivo
        JFileChooser jfc = new JFileChooser(caminho);
        jfc.showOpenDialog(null);
        //pega o diretorio do qual foi aberto o arquivo
        caminho = jfc.getSelectedFile().getParent();
        System.out.printf("path: " + caminho);
        //seta o novo diretorio na propriedade do arquivo
        prop.setProperty("file.chooser", caminho);

        try {
            //salva o arquivo com o novo caminho a ser aberto na próxima visualização do filechooser
            FileOutputStream fos = new FileOutputStream(path);
            prop.store(fos, "");
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

arquivo file.properties:

file.chooser=C\\:

No caso, criei um arquivo de propriedades e nele criei uma propriedade para salvar o ultimo diretório que se teve um arquivo aberto.

Eu tô fazendo assim, mas não tah funcionando.
Parece que ele não grava o caminho da ultima pasta acessada

public class Janela extends JFrame {
  private JFileChooser fc;
  private File file = new File("conf.properties");
  private Properties props = new Properties();
  private String caminho;

  public Janela(File f) throws FileNotFoundException, IOException {
   try {
          props.load(new FileInputStream(file));
          caminho = props.getProperty("lastDir");

       }
       catch (IOException ex) {
           System.out.println(ex.getMessage());
            ex.printStackTrace();
       }

}

public void insertFeatures(){
        arquivo.add(abrir); // onde arquivo é um JMenuItem
        abrir.addActionListener(new ActionListener() {
                //metodo que abre uma nova janela
            public void actionPerformed(ActionEvent e) {
                fc = new JFileChooser(caminho);
                int result = fc.showOpenDialog(null);
                caminho = fc.getSelectedFile().getParent();
                props.setProperty("lastDir",caminho);
                switch (result){
                    case JFileChooser.APPROVE_OPTION:
                        File f = (fc.getSelectedFile());
                        System.out.println(f);
                        if (f.toString().toLowerCase().endsWith(".map")){
                            try {
                                Janela outra = new Janela(f);
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            } catch (IOException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }//end if

Se eu mando printar o caminho:

ry {
          props.load(new FileInputStream(file));
          caminho = props.getProperty("lastDir");
          System.out.println(caminho); /// Nesse print aparece null

       }
       catch (IOException ex) {
           System.out.println(ex.getMessage());
            ex.printStackTrace();
           
       }

o meu props tah assim:

lastdir= C\\:

não deveria estar printando C\:

E vc está usando essa parte para salvar o arquivo?

            FileOutputStream fos = new FileOutputStream(path);
            prop.store(fos, "");
            fos.close();

Pq é a opção props.store(fos, “”), que irá executar a alteração feita no props.setProperty(“lastDir”,caminho);

[quote=oitathi]Se eu mando printar o caminho:

ry {
          props.load(new FileInputStream(file));
          caminho = props.getProperty("lastDir");
          System.out.println(caminho); /// Nesse print aparece null

       }
       catch (IOException ex) {
           System.out.println(ex.getMessage());
            ex.printStackTrace();
           
       }

o meu props tah assim:

lastdir= C\\:

não deveria estar printando C\:[/quote]

Deveria, ele está encontrando o arquivo? Não está gerando nenhuma exceção de FilenotFound?

Da uma conferida nessa linha fc = new JFileChooser(caminho); e ve se a variavel caminho está com a url ou está null ou vazia.