We're a community of 1.1M IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,080,303 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?

Read integers from a file, sort, and print.

0
By BestJewSinceJC on Mar 4th, 2010 6:47 am

Since I keep seeing people asking how to read the Integers from a File, I figured this simple snippet might be useful. What it does is it creates a new Scanner Object based on the File Object "test.txt" then it reads all of the Integers from that file, skipping over anything else that was found in the file, and adding the Integers to an ArrayList. It then sorts the ArrayList and prints out the sorted numbers. The file must exist otherwise this example will crash.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;


public class IntegersFromFile {

	public static void main(String[] args) {
		Scanner file = null;
		ArrayList<Integer> list = new ArrayList<Integer>();
		
		try {
			file = new Scanner(new File("test.txt"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		
		while(file.hasNext()){
			if (file.hasNextInt()) list.add(file.nextInt());
			else file.next();
		}
		
		Collections.sort(list);
		
		for (Integer i: list) System.out.println(i);
		
	}

}

Out of curiosity, what sorting algorithm does the Collections class' sort method use?

kvass
Junior Poster
168 posts since Aug 2009
Reputation Points: 85
Solved Threads: 21
Skill Endorsements: 0
BestJewSinceJC
Posting Maven
2,774 posts since Sep 2008
Reputation Points: 874
Solved Threads: 354
Skill Endorsements: 13

ok well i tried this but i want to modify it to sort text rather than numbers not sure how to do it I tried this

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner; 

 public class NameSort { 	

public static void main(String[] args) {	
	Scanner file = null;		
[ArrayList<String> list = new ArrayList<String>();]

 		try {	
		file = new Scanner(new File("names.txt"));
		} catch (FileNotFoundException e) {	
		e.printStackTrace();		} 	

	while(file.hasNext()){			
if (file.hasNextString()) list.add(file.nextString());
			else file.next();		}

 		Collections.sort(list); 		


for (String s: list) System.out.println(s); 	
	} 

}

but it doesnt want to work keeps coming back with errors any help would be much appreciated

jade_91
Junior Poster in Training
50 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

why do you have brackets around the arraylist decleration?

devninja
Light Poster
36 posts since Mar 2012
Reputation Points: 2
Solved Threads: 2
Skill Endorsements: 0

if i were to want to get the total of the number in a files where would i insert the code

tn464
Newbie Poster
1 post since Jun 2012
Reputation Points: 0
Solved Threads: 0
Skill Endorsements: 0

The read loop starts on line 20:
while(file.hasNext()){
That loop is where you'd perform any operations you want to do with each entry.

Ezzaral
null
Moderator
16,126 posts since May 2007
Reputation Points: 3,294
Solved Threads: 875
Skill Endorsements: 28

Post: Markdown Syntax: Formatting Help
 
You
 
© 2013 DaniWeb® LLC
Page generated in 0.0898 seconds using 2.74MB