// Compute the average of a user-specified file of data values 	
	
import java.io.*;	
	
public class FileAverage {	
	// main(): application entry point	
	public static void main(String[] args) throws IOException {	
		// set up standard input stream	
		BufferedReader stdin = new BufferedReader(	
				new InputStreamReader(System.in));	
	
		// determine filename	
		System.out.print("Filename: ");	
		String filename = stdin.readLine();	
	
		// open file stream for text processing	
		FileReader reader = new FileReader(filename);	
		BufferedReader fileIn = new BufferedReader(reader);	
	
		// initially no values have been processed	
		int valuesProcessed = 0;	
		double valueSum = 0;	
	
		// process values one by one	
		String currentLine = fileIn.readLine(); // get first value	
	
		while (currentLine != null) {           // did we get it	
			// convert string to numeric value	
			double value = Double.parseDouble(currentLine);	
			// add value to running total	
			valueSum += value;	
			// processed another total	
			++valuesProcessed;	
			// prepare for next iteration	
			currentLine = fileIn.readLine();	
		}	
	
		// close up file	
		fileIn.close();	
	
		// ready to compute average	
		if (valuesProcessed > 0) {	
			double average = valueSum / valuesProcessed;	
			System.out.println("Average file data value: " + average);	
		}	
		else {	
			System.err.println(filename + ": no values to average");	
		}	
	}	
}	
	
