A Program to read data from file add it to Collection of object and sort.
file.txt
Ahmed 40
Ali 30
Student.java
package com.ali.fileprogram;
public class Student implements Comparable<Student>{
private int marks;
private String name;
public int getMarks() {
return marks;
}
public void setMarks(int marks) {
this.marks = marks;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Student student) {
// TODO Auto-generated method stub
int compareMarks = student.getMarks();
//ascending order
return this.marks - compareMarks;
//descending order
//return compareMarks - this.marks;
}
}
Main.java
package com.ali.fileprogram;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
try{
File file = new File("file.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
students.add(Main.parseLine(scanner.nextLine()));
}
scanner.close();
Collections.sort(students);
for(Student student : students){
System.out.println(student.getName() + " : " + student.getMarks());
}
}catch(FileNotFoundException exception){
System.out.println("File Not Found Exception : " + exception);
}
}
public static Student parseLine(String line){
//use a second Scanner to parse the content of each line
Scanner scanner = new Scanner(line);
scanner.useDelimiter(" ");
Student student = new Student();
if (scanner.hasNext()){
//assumes the line has a certain structure
student.setName(scanner.next());
student.setMarks(Integer.parseInt(scanner.next()));
}
scanner.close();
return student;
}
}
Result:
Ali : 30
Ahmed : 40
file.txt
Ahmed 40
Ali 30
Student.java
package com.ali.fileprogram;
public class Student implements Comparable<Student>{
private int marks;
private String name;
public int getMarks() {
return marks;
}
public void setMarks(int marks) {
this.marks = marks;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Student student) {
// TODO Auto-generated method stub
int compareMarks = student.getMarks();
//ascending order
return this.marks - compareMarks;
//descending order
//return compareMarks - this.marks;
}
}
Main.java
package com.ali.fileprogram;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
try{
File file = new File("file.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
students.add(Main.parseLine(scanner.nextLine()));
}
scanner.close();
Collections.sort(students);
for(Student student : students){
System.out.println(student.getName() + " : " + student.getMarks());
}
}catch(FileNotFoundException exception){
System.out.println("File Not Found Exception : " + exception);
}
}
public static Student parseLine(String line){
//use a second Scanner to parse the content of each line
Scanner scanner = new Scanner(line);
scanner.useDelimiter(" ");
Student student = new Student();
if (scanner.hasNext()){
//assumes the line has a certain structure
student.setName(scanner.next());
student.setMarks(Integer.parseInt(scanner.next()));
}
scanner.close();
return student;
}
}
Result:
Ali : 30
Ahmed : 40
