Ciao a tutti!
Ho un problema riguardo una lettura da un file.txt e alla copia in un arraylist, che successivamente dovrò andare a riordinare..
Questo è il codice che ho provato a scrivere:
codice:
package negozio.data;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import java.util.StringTokenizer;
import java.util.ArrayList;
/**
* Classe Magazzino che contiene i dati per mezzo di un arraylist
*/
public class Magazzino
{
public static void main( String [] args )
{
// dichiaro ArrayList perchè contenga i prodotti
ArrayList<Prodotto> listaProdotto = new ArrayList<Prodotto>( );
try
{
FileReader fr = new FileReader( "store.txt" );
BufferedReader br = new BufferedReader( fr );
// dichiaro la variabile String
String stringRead = br.readLine( );
while( stringRead != null )
{
// uso lo StringTokenizer per scorrere il file suddiviso dai pipe
StringTokenizer st = new StringTokenizer( stringRead, "|" );
String id = st.nextToken( );
String descrizione = st.nextToken( );
try
{
int costo = Integer.parseInt( st.nextToken( ) );
int quantita = Integer.parseInt( st.nextToken( ) );
float temperatura = Float.parseFloat( st.nextToken( ) );
date scadenza = Date.parseDate(st.nextToken());
Prodotto frTemp = new Prodotto(id, descrizione, costo, quantita, temperatura,scadenza);
// aggiungo il prodotto alla lista prodotti
listaProdotto.add( frTemp );
}
catch( NumberFormatException nfe )
{
System.out.println( "Errore in prodotti: " + stringRead + "; record" );
}
// legge la linea
stringRead = br.readLine( );
}
// chiude il flusso con "store.txt"
br.close( );
}
catch( FileNotFoundException fnfe )
{
System.out.println( "ERRORE:File store.txt non trovato" );
}
catch( IOException ioe )
{
ioe.printStackTrace( );
}
// stampa i prodotti letti
for ( Prodotto elementi : listaProdotto )
System.out.println( elementi );
}
}
Il problema riguarda la scadenza che è di tipo date e mi genera un errore anche se importo: java.util.Date;
Inoltre volevo sapere come mai non viene letto il file in questo modo:
FileReader fr = new FileReader( "store.txt" );
ma solo sostituendo al posto del nome un path assoluto (C:/store.txt) che preferirei evitare.
Grazie a tutti anticipatamente.