//package jsslib.util;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* The AsciiReader can read ascii data files
* @author Robert Schuster
*/
public class AsciiReader extends BufferedReader {
public AsciiReader(String Filename) throws FileNotFoundException {
super(new FileReader(Filename));
}
/**
* Read a line of Text and parse it to the DataTypes in the Format Array
* @param Format an array of the types Float, Double, Intger, Long or Date
* the default date-format is dd.MM.yy
* @param delimiter
* @return null if the end of the file is reached
*/
public Object[] ReadLine(Object[] Format, String delimiter) {
Object[] result = new Object[Format.length];
try {
//read a line from the file
String line = this.readLine();
if (line == null) return null;
//Split the String
String[] words = line.split(delimiter);
//loop over each element in the result array
for (int i=0;i if (Format[i].getClass() == Float.class) result[i] = Float.parseFloat(words[i]);
else if (Format[i].getClass() == Double.class) result[i] = Double.parseDouble(words[i]);
else if (Format[i].getClass() == Integer.class) result[i] = Integer.parseInt(words[i]);
else if (Format[i].getClass() == Long.class) result[i] = Long.parseLong(words[i]);
else if (Format[i].getClass() == Date.class) {
SimpleDateFormat sd = new SimpleDateFormat("dd.MM.yy");
result[i] = sd.parse(words[i]);
}
}
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
return result;
}
}