Итак, вот мой код:
Код: Выделить всё
public void creaInventarioDaFile(){
try{
JFileChooser fc = new JFileChooser();
fc.setFileFilter(new TextFileFilter());
//@SuppressWarnings("unused")
int n = fc.showOpenDialog(PanelInventario.this);
File f = fc.getSelectedFile();
@SuppressWarnings("unused")
DataInputStream inStream = new DataInputStream(new FileInputStream(f));
BufferedReader br = new BufferedReader(new FileReader(f.getAbsoluteFile()));
//a questo punto devo parserizzare il file
Mapmappa = new LinkedHashMap();
//JDialog downloadingDialog = new JDialog((JFrame)null ,"Analizzo file...");
final JDialog dialog = new JDialog((JFrame)null, "In progress", true);
try {
@SuppressWarnings("unused")
StringBuilder sb = new StringBuilder();
String line = br.readLine();
PrintWriter writer = new PrintWriter("articoliInesistenti.txt", "UTF-8");
JProgressBar progressBar = new JProgressBar(0, 100);
progressBar.setIndeterminate(true);
dialog.getContentPane().add(BorderLayout.CENTER, progressBar);
dialog.getContentPane().add(BorderLayout.NORTH, new JLabel("Elaborating strings..."));
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.setSize(300, 75);
dialog.setVisible(true); //
//dialog.setLocationRelativeTo((JFrame)null);
while (line != null || line != "") {
if(line.isEmpty())
break;
String[] articol=null;
Integer colonnaCodice = null;
Integer colonnaQuantita = null;
if(line.contains(" && ")){
articol= line.split(" && ");
if(articol.length!=2){
line = br.readLine();
continue;
}
colonnaCodice = 0;
colonnaQuantita = 1;
}else if(line.contains(",")){
articol= line.split(",");
if(articol.length!=3){
line = br.readLine();
continue;
}
colonnaCodice = 1;
colonnaQuantita = 2;
}
InventarioArticoli inventario = new InventarioArticoli();
inventario.setCodiceBarre(articol[colonnaCodice]);
inventario.setQuantita(Integer.parseInt(articol[colonnaQuantita]));
progressBar.setString("Lettura codice: "+inventario.getCodiceBarre()+" " + " qtà: " + inventario.getQuantita());
//recupero l articolo dal daabase
Articoli articoloInserito = db.eseguiQueryArticolo(inventario.getCodiceBarre(), true,"Prezzo 1");
if(articoloInserito == null){
writer.println(inventario.getCodiceBarre() + " quantità " + inventario.getQuantita());
VisualMessageOrdini.getMessaggioArticoloInesistente(inventario.getCodiceBarre());
line = br.readLine();
continue;
}
inventario.setNomeArticolo(articoloInserito.getNomeArticolo());
inventario.setArticolo(articoloInserito);
mappa.put(inventario.getCodiceBarre(), inventario);
line = br.readLine();
}
} finally {
dialog.dispose();
br.close();
caricaMappaIntoTable(mappa);
}
//}
}catch(Exception e){
log.logStackTrace(e);
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... cally-text