/Users/johnr/Dropbox/johnrayworth.info/largeFilesOutsideJSR/__IB-Other/Other/IA-Solutions-2019/Guy/Product/Investor's Application IA Working Final Draft/src/investor/s/application/ia/ReadAndWriteTransactions.java
 1 /*
 2  * To change this license header, choose License Headers in Project Properties.
 3  * To change this template file, choose Tools | Templates
 4  * and open the template in the editor.
 5  */
 6 package investor.s.application.ia;
 7 
 8 import java.io.BufferedReader;
 9 import java.io.FileReader;
10 import java.io.FileWriter;
11 import java.io.IOException;
12 import java.util.ArrayList;
13 import java.util.StringTokenizer;
14 
15 /**
16  *
17  * @author 17887
18  */
19 public class ReadAndWriteTransactions {
20     
21     public static void savingTransactions(String username, ArrayList<Transaction> transactions) {
22         try {
23             String fileName = username + " Transactions.txt";
24             FileWriter fw = new FileWriter(fileName);
25             for (int i = 0; i < transactions.size(); i++) {
26                 fw.write(transactions.get(i).getStockName());
27                 fw.write(":");
28                 fw.write(transactions.get(i).getDate());
29                 fw.write(":");
30                 fw.write(String.valueOf(transactions.get(i).getNumberOfShares()));
31                 fw.write(":");
32                 fw.write(String.valueOf(transactions.get(i).getDividends()));
33                 fw.write(":");
34                 fw.write(String.valueOf(transactions.get(i).getPrice()));
35                 fw.write(":");
36                 fw.write(String.valueOf(transactions.get(i).getBought()));
37                 fw.write(":");
38                 fw.write(String.valueOf(transactions.get(i).getTimeStamp()));
39                 fw.write(":");
40                 fw.write(String.valueOf(transactions.get(i).getAveragePriceToDate()));
41                 fw.write(":");
42                 fw.write(String.valueOf(transactions.get(i).getTotalSharesOwnedToDate()));
43                 fw.write(":");
44                 fw.write(String.valueOf(transactions.get(i).getTransactionProfit()));
45                 fw.write(":");
46                 fw.write(String.valueOf(transactions.get(i).getProfitToDate()));
47                 fw.write(":");
48             }
49             fw.close();
50         } catch (IOException ex) {
51 
52         }
53     }
54 
55     public static ArrayList<Transaction> readingTransactionsFile(String username) {
56         ArrayList<Transaction> transactions = new ArrayList<Transaction>();
57         try {
58             FileReader fr = new FileReader(username + " Transactions.txt");
59             BufferedReader br = new BufferedReader(fr);
60             String readInFile = br.readLine();
61             StringTokenizer st = new StringTokenizer(readInFile, ":");
62             while (st.hasMoreTokens()) {
63                 String stockName = st.nextToken();
64                 String date = st.nextToken();
65                 int numberOfShares = Integer.parseInt(st.nextToken() + "");
66                 double dividends = Double.parseDouble(st.nextToken() + "");
67                 double price = Double.parseDouble(st.nextToken() + "");
68                 boolean bought = Boolean.parseBoolean(st.nextToken() + "");
69                 long timeStamp = Long.parseLong(st.nextToken() + "");
70                 double averagePriceToDate = Double.parseDouble(st.nextToken() + "");
71                 int totalSharesOwnedToDate = Integer.parseInt(st.nextToken() + "");
72                 double transactionProfit = Double.parseDouble(st.nextToken() + "");
73                 double netProfitToDate = Double.parseDouble(st.nextToken() + "");
74                 transactions.add((new Transaction(stockName, date, numberOfShares, dividends, price, bought, 
75                         timeStamp, averagePriceToDate, totalSharesOwnedToDate, transactionProfit, netProfitToDate)));
76             }
77         } catch (IOException ex) {
78             transactions.add(new Transaction("preventNull", "preventNull", 99, -9.99, -9.99, false, -99l, -9.99, -99, -9.99, -9.99));
79         }
80         return transactions;
81     }
82 
83 }
84