October 6, 2018

Sreekanth B

How To Find Two Lines With Max Characters In Descending Order Java Program


Write a program to find two lines with max characters in descending order?


Write a program to read a multiple line text file and write the 'N' longest lines to the output console, where the file to be read is specified as command line arguments. The program should read an input file. The first line should contain the value of the number 'N' followed by multiple lines. 'N' should be a valid positive integer.


package com.longest.lines;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

public class Main {

    public static void main(String[] args) {
        BufferedReader br = null;
        String filePath = args[0];
        int topList = 0;
        Set<Entries> liSet = new TreeSet<Entries>(new MyComp());
        try {
            br = new BufferedReader(new FileReader(new File(filePath)));
            String line = br.readLine();
            topList = Integer.parseInt(line.trim());
            while((line = br.readLine()) != null){
                line = line.trim();
                    liSet.add(new Entries(line.length(), line));
            int count = 0;
            for(Entries ent:liSet){
                if(++count == topList){
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block

    public static class Entries{
        Integer length;
        String line;
        public Entries(Integer l,String line){
            length = l;
            this.line = line;
    public static class MyComp implements Comparator<Entries>{

        public int compare(Entries e1, Entries e2) {
            if(e2.length > e1.length){
                return 1;
            } else {
                return -1;

Sample input file:
My Test line 123

Java world
I know java language

This is a test program
java is simple


This is a test program
I know java language
My Test line 123

Subscribe to get more Posts :