Java NIO - Unparseable Date

0 respostas
H

Bom dia!

Estou desenvolvendo um trabalho em Java utilizando os pacotes NIO e IO para fazer a leitura de arquivos .dat que contém dados sobre a previsão meteorológica de cada dia. O objetivo do programa é ler estes arquivos e criar um novo arquivo .dat convertendo os dados do arquivo principal em arquivos de Objeto (serializando). O novo arquivo deve ter como nome o mês e o ano respectivo dos dados no formato “MM-yyyy”.

Eis o problema: Quando tento carregar o arquivo principal, ocorre um erro de Unparseable Date. Já tentei de algumas outras maneiras solucionar este problema, mas sem sucesso. Sou iniciante em java, e qualquer outra dica referente ao resto do código é bem-vinda.

Segue o algoritmo (Estou fazendo em JFrame):

JFileChooser jfc = new JFileChooser();
    int returnval = jfc.showOpenDialog(null);
    int lido = 0;
    int ultimomes = -1;
    if (returnval == JFileChooser.APPROVE_OPTION) {
        File file = jfc.getSelectedFile();
        try {
            FileInputStream fs = new FileInputStream(file);
            BufferedInputStream bs = new BufferedInputStream(fs);
            DataInputStream ds = new DataInputStream(bs);
            BufferedReader br = new BufferedReader(new InputStreamReader(fs));
            while (lido != -1) {
                String readData = br.readLine();
                SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
                Date date = sdf.parse(readData);
                Calendar cal = Calendar.getInstance();
                cal.setTime(date);
                String saidavento = String.valueOf(ds.readChar() + ds.readChar());
                int velocidadevento = ds.readInt();
                int pluviometro = ds.readInt();
                double temperatura = ds.readDouble();
                ClimaDoDia clima = new ClimaDoDia(date, saidavento, velocidadevento, pluviometro, temperatura);
                FileOutputStream primeiro = new FileOutputStream(cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.MONTH) + ".dat");
                if (cal.get(Calendar.MONTH) != ultimomes) {
                    FileOutputStream proximo = new FileOutputStream(cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.MONTH) + ".dat");
                    ObjectOutputStream gravar = new ObjectOutputStream(proximo);
                    gravar.writeObject(clima);
                    gravar.flush();
                    gravar.close();
                    ultimomes = cal.get(Calendar.MONTH);
                } else {
                    ObjectOutputStream gravar = new ObjectOutputStream(primeiro);
                    gravar.writeObject(clima);
                    gravar.flush();
                    gravar.close();
                    ultimomes = cal.get(Calendar.MONTH);
                }
                lido = br.read();
            }

        } catch (FileNotFoundException ex) {
            Logger.getLogger(ClimaFrame.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(ClimaFrame.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(ClimaFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        JOptionPane.showMessageDialog(null, "Usuário cancelou a operação!");
    }
Criado 25 de março de 2018
Respostas 0
Participantes 1