--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressSourceBK.java 2016/01/24 21:48:55 2838 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressSourceBK.java 2016/01/28 10:30:01 2857 @@ -28,10 +28,7 @@ this.file = file; - is = file.getInputStream(); - isr = new InputStreamReader(is, Charset.forName("ISO-8859-1") ); - br = new BufferedReader(isr); - + } @Override @@ -39,6 +36,27 @@ return file.getName(); } + @Override + public void validate() throws IOException { + try ( + InputStream is1 = file.getInputStream(); + InputStreamReader isr1 = new InputStreamReader(is1, Charset.forName("ISO-8859-1") ); + BufferedReader br1 = new BufferedReader(isr1) + ) { + String line = br1.readLine(); + String[] parts = line.split(";"); + int numFields = parts.length; + if (numFields != 13) { + throw new IOException("Not enough fields in CSV file. Found " + numFields + ", expected 13"); + } + } + + + is = file.getInputStream(); + isr = new InputStreamReader(is, Charset.forName("ISO-8859-1") ); + br = new BufferedReader(isr); + } + //TODO: Skal csv parsning klares med Apache Commons CSV ? @Override @@ -56,6 +74,11 @@ entry.distributor = "BK"; String[] parts = line.split(";"); + + if (parts.length != 13) { + throw new IOException("Not enough fields in CSV file. Found " + parts.length + ", expected 13"); + } + entry.postnr = Short.parseShort( parts[0]); entry.vejnavn = parts[1].replace("\"", ""); entry.husnr = Short.parseShort( parts[2] ); @@ -68,7 +91,7 @@ String laesnr = parts[8].replace("\"", ""); - @SuppressWarnings("unused") String distnr = parts[9].replace("\"", ""); + //String distnr = parts[9].replace("\"", ""); //Bruges ikke String foede = parts[10].replace("\"", ""); String jobnr = parts[11].replace("\"", ""); String tklaes = parts[12].replace("\"", "");