import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.sql.Array; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; public class PlateFileReader { private List> wells = new ArrayList<>(); private String filename; public PlateFileReader(String filename){ if(!filename.matches(".*\\.csv")){ filename = filename + ".csv"; } this.filename = filename; CSVFormat plateFileFormat = CSVFormat.Builder.create() .setCommentMarker('#') .build(); try(//don't need to close reader bc of try-with-resources auto-closing BufferedReader reader = Files.newBufferedReader(Path.of(filename)); CSVParser parser = new CSVParser(reader, plateFileFormat); ){ for(CSVRecord record: parser.getRecords()) { List well = new ArrayList<>(); for(String s: record) { if(!"".equals(s)) { String[] sequences = s.replaceAll("\\[", "") .replaceAll("]", "") .replaceAll(" ", "") .split(","); //System.out.println(sequences); String[] arr = new String[sequences.length]; for (int i = 0; i < sequences.length; i++) { arr[i] = sequences[i]; } well.add(arr); } } wells.add(well); } } catch(IOException ex){ System.out.println("plate file " + filename + " not found."); System.err.println(ex); } } public Plate getSamplePlate() { return new Plate(filename, wells); } }