How to read comma separated values โ€‹โ€‹from a text file in JAVA?

I have this text file with latitude and longitude values โ€‹โ€‹of different points on the map. I want to save these coordinates in mySQL database using sleep mode. I want to know how can I split my line into latitudes and longitudes? What is the general way to do things that exist with other delimiters like space, tab, etc.? File:

28.515046280572285,77.38258838653564 28.51430151808072,77.38336086273193 28.513566177802456,77.38413333892822 28.512830832397192,77.38490581512451 28.51208605426073,77.3856782913208 28.511341270865113,77.38645076751709 28.510530488025346,77.38720178604126 28.509615992924807,77.38790988922119 28.50875805732363,77.38862872123718 28.507994394490268,77.38943338394165 28.50728729434496,77.39038825035095 28.506674470385246,77.39145040512085 28.506174780521828,77.39260911941528 28.505665660113582,77.39376783370972 28.505156537248446,77.39492654800415 28.50466626846366,77.39608526229858 28.504175997400655,77.39724397659302 28.503685724059455,77.39840269088745 28.503195448440064,77.39956140518188 28.50276174118543,77.4007523059845 28.502309175192945,77.40194320678711 28.50185660725938,77.40313410758972 28.50140403738471,77.40432500839233 28.500951465568985,77.40551590919495 28.500498891812207,77.40670680999756 28.5000463161144,77.40789771080017 28.49959373847559,77.40908861160278 

The code I use to read from a file:

  try { BufferedReader in = new BufferedReader(new FileReader("G:\\RoutePPAdvant2.txt")); String str; str = in.readLine(); while ((str = in.readLine()) != null) { System.out.println(str); } in.close(); } catch (IOException e) { System.out.println("File Read Error"); } 
+6
source share
6 answers

You can use the String.split() method:

 String[] ar=str.split(","); 

After that, use the Double.parseDouble () method to parse the string value.

 double latitudes=Double.parseDouble(ar[0]); double longitudes=Double.parseDouble(ar[1]); 
+25
source

Use OpenCSV for reliability. Split should never be used for this kind of thing. Here's a snippet from my own program, it's pretty simple. I check if a separator character has been specified, and use it if it is, if I do not use the default value in OpenCSV (comma). Then I read the title and fields

 CSVReader reader = null; try { if (delimiter > 0) { reader = new CSVReader(new FileReader(this.csvFile), this.delimiter); } else { reader = new CSVReader(new FileReader(this.csvFile)); } // these should be the header fields header = reader.readNext(); while ((fields = reader.readNext()) != null) { // more code } catch (IOException e) { System.err.println(e.getMessage()); } 
+4
source

OpenCSV is a popular library if you prefer to use it.
Details here: http://opencsv.sourceforge.net/

There are also several other questions related to stackoverflow on a similar topic:

+2
source

To split the string with a comma (,), use str.split(",") and to use the str.split("\\t") tab str.split("\\t")

  try { BufferedReader in = new BufferedReader( new FileReader("G:\\RoutePPAdvant2.txt")); String str; while ((str = in.readLine())!= null) { String[] ar=str.split(","); ... } in.close(); } catch (IOException e) { System.out.println("File Read Error"); } 
+1
source

// w = 3434 & longitude = YY38 & e = 1.0 & | in this format o / p public class ReadText {

 public static void main(String[] args) throws Exception { FileInputStream f= new FileInputStream("D:/workplace/sample/bookstore.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(f)); String strline; StringBuffer sb = new StringBuffer(); while ((strline = br.readLine()) != null) { String[] arraylist=StringUtils.split(strline, ","); if(arraylist.length == 2){ sb.append("lat=").append(StringUtils.trim(arraylist[0])).append("&lon=").append(StringUtils.trim(arraylist[1])).append("&rt=1.0&|"); }else{ System.out.println("Error: "+strline); } } System.out.println("Data: "+sb.toString()); } 

}

+1
source

You can also use the java.util.Scanner class.

 private static void readFileWithScanner() { File file = new File("path/to/your/file/file.txt"); Scanner scan = null; try { scan = new Scanner(file); while (scan.hasNextLine()) { String line = scan.nextLine(); String[] lineArray = line.split(","); // do something with lineArray, such as instantiate an object } catch (FileNotFoundException e) { e.printStackTrace(); } finally { scan.close(); } } 
0
source

Source: https://habr.com/ru/post/917679/


All Articles