Ho un problema con la lettura del file di input, spiego nel dettaglio... ho il seguente file di input:
Data:11-07-2015 DA: Marco A: Franco Testo:Ciao come va?
Data:11-07-2015 DA: Franco A: Marco Testo:Ciao!
Data:12-07-2015 DA: Anna A: Marco Testo:Ciao!
Creo la mia classe Messaggio :
public class Messaggio {
String data;
String mittente;
String destinatario;
String testo;
public Messaggio(String data, String mittente, String destinatario, String testo){
this.data=data;
this.mittente=mittente;
this.destinatario=destinatario;
this.testo=testo;
}
public String toString(){
StringBuffer sb = new StringBuffer();
sb.append(data+mittente+destinatario+testo);
sb.append("\n");
return sb.toString();
}
}
e la mia classe Main:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws Exception{
ArrayList<Messaggio> listaMessaggi= new ArrayList<Messaggio>();
String data="";
String mittente="";
String destinatario="";
String testo="";
BufferedReader br;
br = new BufferedReader(new FileReader("input.txt"));
String line;
Messaggio m=new Messaggio(data,mittente,destinatario,testo);
while((line = br.readLine())!=null) {
if(line.isEmpty()) m=new Messaggio(data,mittente,destinatario,testo);;
if(line.contains("Data:")) {
String []e=line.split("");
data=e[0].replaceAll("Data:", "");
m.data=data;
mittente=e[1].replaceAll("DA:", "");
m.mittente=mittente;
destinatario=e[2].replaceAll("A:", "");
m.destinatario=destinatario;
}
if(line.contains("Testo:")) {
testo=line.replace("Testo:", "");
m.testo=testo;
listaMessaggi.add(m);
m=new Messaggio(data,mittente,destinatario,testo);
}
}
System.out.println(listaMessaggi);
br.close();
}
}
Il problema è che mi legge in questo modo:
[DatData:11-07-2015 DA: Marco A: Franco Ciao come va?
, DatData:11-07-2015 DA: Franco A: Marco Ciao!
, DatData:12-07-2015 DA: Anna A: Marco Ciao!
]
Perchè esce Dat all'inizio?? Eppure mi sembra di aver splittato e replace tutto in modo corretto