From 68823111ef1cd8f0d7844934d7567cb134055503 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 6 Jan 2014 15:53:42 +0200 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20CsvReader=20=D0=B2=20?= =?UTF-8?q?=D0=9B=D0=A03?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/ui/AbstractFileChooser.java | 1 - src/tse/lr3/LR_3_Tasks.java | 40 +++++++++------------ 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/com/annimon/ui/AbstractFileChooser.java b/src/com/annimon/ui/AbstractFileChooser.java index 38bd0db..29740f1 100644 --- a/src/com/annimon/ui/AbstractFileChooser.java +++ b/src/com/annimon/ui/AbstractFileChooser.java @@ -9,7 +9,6 @@ import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JPanel; -import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE; /** * diff --git a/src/tse/lr3/LR_3_Tasks.java b/src/tse/lr3/LR_3_Tasks.java index 96739b5..5ccb3fe 100644 --- a/src/tse/lr3/LR_3_Tasks.java +++ b/src/tse/lr3/LR_3_Tasks.java @@ -1,13 +1,13 @@ package tse.lr3; +import com.annimon.io.CsvReader; import tse.lr2.*; import java.awt.Point; -import java.io.BufferedReader; import java.io.BufferedWriter; +import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStreamWriter; @@ -151,31 +151,25 @@ public class LR_3_Tasks { } private List readFromCSV(String filename) throws IOException { - List list = new ArrayList<>(); - BufferedReader reader = new BufferedReader( - new InputStreamReader( new FileInputStream(filename), "UTF-8" ) - ); - reader.readLine(); // Класс,X1,Y1,X2,Y2,X3,Y3,X4,Y4 - String line; - while ( (line = reader.readLine()) != null ) { - Ellipse ellipse = null; - try { - ellipse = readFromCsvLine(line); - } catch (RuntimeException ex) { - System.out.println(ex.toString()); + CsvReader csvReader = new CsvReader<>(new File(filename)); + csvReader.setReaderHandler(new CsvReader.ReaderHandler() { + + @Override + public void onStartRead(File file) { } + + @Override + public Ellipse createObject(String[] params) { + return readFromCsvLine(params); } - if (ellipse != null) list.add(ellipse); - } - reader.close(); - return list; + + @Override + public void onFinishRead(File file) { } + }); + return csvReader.readCsvToList(true); } - private Ellipse readFromCsvLine(String line) { + private Ellipse readFromCsvLine(String[] params) { final int POINTS_COUNT = 4; - if (line.isEmpty()) throw new RuntimeException("Пустая строка"); - String[] params = line.split(","); - if (params.length < 9) throw new RuntimeException("Неверное количество параметров"); - final int[] coords = new int[POINTS_COUNT * 2]; for (int i = 0; i < coords.length; i++) { coords[i] = Integer.parseInt(params[i + 1]);