How to read number values stored in columns in a text file into an array?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jah Mason
    New Member
    • Nov 2010
    • 3

    How to read number values stored in columns in a text file into an array?

    "Numbers.tx t"
    1
    3
    5
    4
    2

    /*Currently i have functionality for a user to choose a number of values to be entered into an array, add numbers into the array "numbers" and process the mean, range, variance, maximum, minimum and display the array. Now i'm trying to modify the code to read values from a text file into the array "numbers" and apply the same functions*/

    Code:
    ackage arraysfiles;
    import UsingJava.*;
    import java.util.*;
    import java.io.*;
    /**
     *
     * @author Jah Mason
     */
    public class ArraysFiles {
    
        public static void main(String[] args) {
    
            int i,numb;
            double value,maxVal,minVal,mean,sum,variance,range;
    
            System.out.println("Please enter Integer number of values: ");
            numb= TextIO.getlnInt();
                while (numb<0){
                   System.out.println("Please enter positive number of values");
                   numb= TextIO.getlnInt();
               }
            
    
            double numbers []=new double [numb];
            
            sum=0;mean=0;
           for (i=0; i<numbers.length; i++){
               
               System.out.println("Please enter Value");
               value=TextIO.getlnDouble();
    
               numbers[i]+= value;
               sum+=value;
               mean=sum/numbers.length;
            }
            maxVal=numbers[numbers.length-1];minVal=numbers[0];
            for (i=0;i<numbers.length;i++){
                if(numbers[i]>maxVal)
                    maxVal=numbers[i];
                if(numbers[i]<minVal)
                    minVal=numbers[i];
            }
            //Arrays.sort(numbers); //Alternative sort to get maximum and minimum values
            //maxVal=numbers[numbers.length-1];
            //minVal=numbers[0];
            
    range=maxVal-minVal;
    variance=((sum*sum)-((sum*sum)/numbers.length))/(numbers.length-1);
    
            System.out.println("Max is:" + maxVal);
            System.out.println("Min is:" + minVal);
            System.out.println("The Range of Values from Maximum to Minimum is " + range);
            System.out.println("The Variance is " + variance);
            System.out.println("Mean of Numbers is:" + mean);
            System.out.println(Arrays.toString(numbers));
            
            
        }
    
    }
    Last edited by Dormilich; Nov 24 '10, 02:01 PM.
  • Jah Mason
    New Member
    • Nov 2010
    • 3

    #2
    Never mind....figured it out eventually, been avoiding the use of Input Streams and Buffered Readers for the sake of simplicity...bu t once you understand how they're used...it is simple.

    But for the benefit of anyone with a similar problem, you can refer to the code below:

    Code:
    import java.util.*;
    import java.io.*;
    /**
     *
     * @author Jah Mason
     */
    public class ArrayFiles {
    
        public static void main(String[] args)
                throws IOException, FileNotFoundException
        {  
            int i,numVal;
    
            double maxVal,minVal,mean,sum,variance,range;
    
    
            System.out.println("Please enter Integer number for size sample: ");
    
            
            numVal= TextIO.getlnInt();
    
    
            while (numVal<0){
                   System.out.println("Please enter positive number of values");
                   numVal= TextIO.getlnInt();
               }
    
            //Declaration of an array for numbers entered by the user
            double numbers []=new double [numVal];
    
        
            FileInputStream valstream= new FileInputStream("C:\\Numbers.txt");
    
        
            DataInputStream values=new DataInputStream(valstream);
    
    
            BufferedReader readVal = new BufferedReader(new InputStreamReader(values));
    
    /*Loop to convert string data to double data and then assign these values into
     the array "numbers"*/
             for (i=0; i<numVal; i++){
                numbers[i]=Double.parseDouble(readVal.readLine());}
    
    System.out.println("The sample array of values is: "+Arrays.toString(numbers));
    Last edited by Nepomuk; Nov 26 '10, 11:57 AM. Reason: Fixed [code] tags

    Comment

    Working...