First off I would use the green Improve Question link to enclose your code in a code block. Select the code text and click the code tool. Then fix the bracing and indenting. It'll make the code far easier to read.
Here are my thoughts after looking over your code:
Your Main class doesn't need to extend book. There's no need for the Data instance either. Main only really exists as an entity to run the program via its included main method.
Your code reads the CSV file into an ArrayList. When you want to print it out loop thru ArrayList and print out each ArrayList entry. ArrayList.get(i) will return each book instance that was added to the list.
for (int i = 0; i < ArrayList.size();i++)
{
bookobj = ArrayList.get(i);
Bookobj.printDetails();
}
System.out.println("Number of Contents of File: "+counter+" " + "while loop");
Why are there 2 lists, ArrayList and LinkedList? If this is related to your earlier insertion sort question. I would suggest changing your ArrayList and LinkedList variables.
Change List<book> LinkedList to LinkedList<book> unsortedList;
Change List<book> ArrayList to ArrayList<book> sortedList;
Read the CSV file into unsortedList.
Then loop through unsortedList doing an insertion sort into sortedList.
Finally loop thru sortedList to print it out.