/** * Copyright 2010 Neuroph Project http://neuroph.sourceforge.net * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.neuroph.samples.stockmarket; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.Set; /** * Provides method to reads stock data from the file. * See http://neuroph.sourceforge.net/tutorials/StockMarketPredictionTutorial.html * @author Dr.V.Steinhauer */ public class StockFileReader { private int maxCounter; private String[] valuesRow; public StockFileReader() { this.setMaxCounter(100); } public StockFileReader(int maxCounter) { this.setMaxCounter(maxCounter); } public String[] getValuesRow() { return valuesRow; } public void setValuesRow(String[] valuesRow) { this.valuesRow = valuesRow; } public int getMaxCounter() { return maxCounter; } public void setMaxCounter(int maxCounter) { this.maxCounter = maxCounter; } @SuppressWarnings("static-access") public void read(String fileName) { HashMap hm = new HashMap(); File file = new File(fileName); System.out.println("file = " + fileName+". It will be filtered the values for the moment of the market opened"); int counter = 0; try { FileInputStream fis = new FileInputStream(file); BufferedReader dis = new BufferedReader(new InputStreamReader(fis)); String s; while ((s = dis.readLine()) != null) { //System.out.println(s); String[] s1 = s.split(","); String s00 = s1[0].replace('\"', ' ').trim(); String s01 = s1[1].replace('\"', ' ').trim(); hm.put(s00, s.replace('\"', ' ').trim()); //System.out.println(s00 + " " + s01); counter = counter + 1; } fis.close(); } catch (IOException ioe) { System.out.println("Oops- an IOException happened."); ioe.printStackTrace(); System.exit(1); } System.out.println("full number of values = " + counter); Set s = hm.keySet(); Iterator i = s.iterator(); valuesRow = new String[this.getMaxCounter()]; int n = 0; while (i.hasNext()) { String key = (String) i.next(); String value = (String) hm.get(key); //System.out.println(key + "->" + value); n = n + 1; if (counter - n < this.getMaxCounter()) { valuesRow[counter - n] = value; System.out.println(counter + " " + n + " " + valuesRow[counter - n] + " " + (counter - n)); } } System.out.println("valuesRow.length=" + valuesRow.length); } }