Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java - read text file starting from second line

Tags:

java

io

csv

I am trying to read a txt file in java. However, I only want to read starting from the second line since the first line is just a label. This is the example

Text File:

Name,Type,Price
Apple,Fruit,3
Orange,Fruit,2
Lettuce,Veggie,1

How do I do this? I have this code where you can read from first line.

Code:

//read the file, line by line from txt
File file = new File("train/traindata.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;

line = br.readLine();

while(line != null)
{
    lines = line.split(",");

    //Do something for line here
    //Store the data read into a variable

    line = br.readLine();         
}

fr.close();

Please help me, Thank you in advance.

like image 236
Jason Christopher Avatar asked Nov 30 '22 16:11

Jason Christopher


2 Answers

Just add an extra BufferedReader#readLine call...

br.readLine(); // consume first line and ignore
line = br.readLine();
while(line != null) ...
like image 82
flakes Avatar answered Dec 04 '22 07:12

flakes


In case you are interested in using a third party library, here is an example using Apache Commons CSV (it will skip the header, but keep its mapping for retrieval of fields from the record).

Modify the charset according to your file's encoding.

   CSVParser parser = CSVParser.parse(file, Charset.forName("UTF-8"),CSVFormat.RFC4180.withFirstRecordAsHeader().withSkipHeaderRecord());

   List<CSVRecord> records = parser.getRecords();

   for (CSVRecord record : records) {

       System.out.println(record.get("Name"));
       System.out.println(record.get("Type"));
       System.out.println(record.get("Price"));
   }
like image 40
Arnaud Avatar answered Dec 04 '22 09:12

Arnaud