/Users/e1818782/NetBeansProjects/IA Stuff/RecipeDatabase_Nicolas/src/nicolas/SaveLoad.java |
1
2
3
4
5
6 package nicolas;
7
8 import java.awt.BorderLayout;
9 import java.io.BufferedReader;
10 import java.io.FileReader;
11 import java.io.FileWriter;
12 import java.io.IOException;
13 import java.util.ArrayList;
14 import java.util.StringTokenizer;
15 import java.util.logging.Level;
16 import java.util.logging.Logger;
17
18
19
20 @author
21
22 public class SaveLoad {
23 ArrayList<Recipe> r;
24 public SaveLoad()
25 {
26
27 }
28 public SaveLoad(ArrayList<Recipe> r)
29 {
30 this.r=r;
31 }
32 public void saveRecipes()
33 {
34
35
36 try{
37 String fileName= "Recipes.txt";
38
39 FileWriter fw= new FileWriter(fileName);
40 fw.write(""+r.size());
41 fw.write(":");
42 for(int count=0; count<r.size();count++) {
43 fw.write(r.get(count).getName());
44 fw.write(":");
45 System.out.println(r.get(count).getCalories());
46 fw.write(""+r.get(count).getCalories());
47 fw.write(":");
48 fw.write(r.get(count).getMethod());
49 fw.write(":");
50 fw.write(""+r.get(count).getPrice());
51 fw.write(":");
52 fw.write(""+r.get(count).getServings());
53 fw.write(":");
54 fw.write(""+r.get(count).getIng().size());
55 fw.write(":");
56 for(int i=0; i< r.get(count).getIng().size();i++){
57 fw.write(""+r.get(count).getIng().get(count).getIngName());
58 fw.write(":");
59 fw.write(""+r.get(count).getIng().get(count).getQuantity());
60 fw.write(":");
61 fw.write(""+r.get(count).getIng().get(count).getUnit());
62 fw.write(":");
63 fw.write(""+r.get(count).getIng().get(count).getCost());
64 fw.write(":");
65 }
66
67 }
68
69
70 fw.close();
71 } catch (IOException ex) {
72 System.out.println("error");
73 }
74 }
75 public ArrayList<Recipe> loadRec()
76 {
77 ArrayList<Recipe> r=new ArrayList<>();
78 try
79 {
80 FileReader fr = new FileReader("Recipes.txt");
81 BufferedReader br= new BufferedReader(fr);
82 String readInfile=br.readLine();
83 try{
84 StringTokenizer st= new StringTokenizer(readInfile,":");
85
86
87 int rLimit=Integer.parseInt(st.nextToken());
88 for(int recipeCount=0;recipeCount<rLimit;recipeCount++){
89 r.add(new Recipe());
90
91 String name=st.nextToken();
92 int calories=Integer.parseInt(st.nextToken());
93 String method=st.nextToken();
94 double price=Double.parseDouble(st.nextToken());
95
96 double servings=Double.parseDouble(st.nextToken());
97 r.get(recipeCount).setName(name);
98 r.get(recipeCount).setCalories(calories);
99 r.get(recipeCount).setPrice(price);
100 r.get(recipeCount).setMethod(method);
101 r.get(recipeCount).setServings(servings);
102 ArrayList<Ingredients> ingr=new ArrayList<>();
103 int iLimit=Integer.parseInt(st.nextToken());
104 for(int ingc=0; ingc<iLimit;ingc++)
105 {
106 String ingN=st.nextToken();
107 double ingQ=Double.parseDouble(st.nextToken());
108 String ingU=st.nextToken();
109 double ingC=Double.parseDouble(st.nextToken());
110
111 ingr.add(new Ingredients(ingN, ingQ, ingU, ingC));
112
113 }
114 r.get(recipeCount).setIng(ingr);
115
116
117 }
118 }
119 catch(NullPointerException np){
120 System.out.println("No list created yet");
121 }
122 }
123 catch(IOException ex)
124 {
125 System.out.println("Error");
126 }
127 return r;
128 }
129 }
130