Galera estou postando aqui meu código. O mesmo se encontra com alguns erros. Primeiro ele não está lendo a tabela.txt inteira, como deveria. Não está lendo a primeira linha.
Segundo e mais importante:
Preciso tratar os valores de uma tabela.txt. De forma que se faltar alguma data ou hora, esta seja incrementada: Ex: Tabela tem "Data Hora Valor"
25/01/2012 09:00:00 0.000
25/01/2012 10:00:00 0.000
25/01/2012 11:00:00 0.000
25/01/2012 12:00:00 0.000
25/01/2012 14:00:00 0.000
25/01/2012 15:00:00 0.000
25/01/2012 16:00:00 0.000
25/01/2012 17:00:00 0.000
25/01/2012 18:00:00 0.000
Nota-se que não há "25/01/2012 13:00:00 0.000"
Gostaria de ajuda como faço para verificar isso de forma simples.
Código
package testearq.org;
import java.io.BufferedReader;
import java.io.FileReader;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFileChooser;
public class Leitura {
public static Date formataData(String data) throws Exception {
if (data == null || data.equals(""))
return null;
Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (java.util.Date)formatter.parse(data);
} catch (ParseException e) {
throw e;
}
return date;
}
public static Date formataHora(String hora) throws Exception {
if (hora == null || hora.equals(""))
return null;
Date hour = null;
try {
DateFormat formatter = new SimpleDateFormat("HH:mm");
hour = (java.util.Date)formatter.parse(hora);
} catch (ParseException e) {
throw e;
}
return hour;
}
public static void main(String[] args) {
JFileChooser arquivo = new JFileChooser();
arquivo.showDialog(null, null);
String nome = arquivo.getSelectedFile().getAbsolutePath().toString();
try {
FileReader arq = new FileReader(nome);
BufferedReader lerArq = new BufferedReader(arq);
String datastr = null;
String refstr = null;
String horastr = null;
String linha = lerArq.readLine();
while (linha != null){
System.out.printf("%s %s %s\n", datastr, horastr, refstr);
linha = lerArq.readLine();
datastr = linha.substring(0,10);
formataData(datastr);
horastr = linha.substring(11,19);
formataHora(horastr);
refstr = linha.substring(20);
refstr = refstr.trim();
}
arq.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println();
}
}
