This repository has been archived by the owner on Jul 2, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDaten.java
243 lines (234 loc) · 8.27 KB
/
Daten.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.InputStreamReader;
import java.io.File;
import java.net.URL;
import java.awt.Desktop;
/**
* Die Klasse Daten übernimmt das Auslesen und Speichern der Daten in .txt Dateien und das Öffnen von Links.
*
* @author Jan Schneider, HfG, IoT3
* @version 2018.06.30
*/
public class Daten
{
/**
* Konstruktor der Klasse Daten
*/
public Daten()
{
// keine Instanzvariablen
}
/**
* Diese Methode lädt die aktuellen Daten des Vorlagenturniers (WM 2018) aus dem Github-Repository des Programms und speichert diese lokal.
* Dies dient einerseits als Backup, andererseits als einfache Methode um immer den aktuellsten Plan samt Ergebnissen zu sehen,
* ohne diese als Nutzer selbst eingeben zu müssen (sofern eine Internetverbindung besteht und die Ergebnisse online sind).
*
* @param art Welche Art Daten wird abgefragt (Allgemein, Gruppen, Länder)
* @param dateiname Name der auszulesenden Datei
* @return aktuelledaten Daten, die zur angefragten Datei gehören
*/
public String ladeVorlage(String art, String dateiname) throws IOException
{
String aktuelledaten = "";
String zeile = "";
URL link = new URL ("https://jan-patrick.de");
switch(art)
{
case "gruppen":
link = new URL ("https://raw.githubusercontent.com/jan-patrick/World-Cup-betting/master/Gruppen/"
+ dateiname +".txt");
break;
case "turniername":
link = new URL ("https://raw.githubusercontent.com/jan-patrick/World-Cup-betting/master/Allgemein/"
+ dateiname +".txt");
break;
case "laender":
link = new URL ("https://raw.githubusercontent.com/jan-patrick/World-Cup-betting/master/Laender/"
+ dateiname +".txt");
break;
default:
aktuelledaten = "Fehler";
return aktuelledaten;
}
BufferedReader bu = new BufferedReader(
new InputStreamReader(link.openStream()));
while( (zeile = bu.readLine()) != null )
{
aktuelledaten += zeile + "/";
}
bu.close();
return aktuelledaten;
}
/**
* Liest aus einer lokal gespeicherten Textdatei (in einem Ordner im Projektverzeichnis) die Daten einer Datei aus.
* Die Methode funktioniert praktisch identisch wie ladeVorlage().
*
* @param ordnername Der Ordner der gesuchten Datei (Allgemein, Gruppen, Länder)
* @param dateiname Der Dateiname der Textdatei
*
* @return daten aller Zeilen getrennt durch "/" in einem String
*/
public String ladeDatei(String ordnername, String dateiname) throws IOException
{
String datei = ordnername + "/" + dateiname + ".txt";
FileReader fr = new FileReader(datei);
BufferedReader br = new BufferedReader(fr);
String aktuelledaten = "";
String zeile = "";
while( (zeile = br.readLine()) != null )
{
aktuelledaten += zeile + "/";
}
br.close();
return aktuelledaten;
}
/**
* Im Prinzip gegenläufig zu den beiden auslesenden Funktionen speichert diese Methode die Daten in die gewünschte Datei.
*
* @param art Art der zu speichernden Daten (turniername, Gruppen, Länder)
* @param name Dateiname der zu speichernden Textdatei
* @param aktuelledaten Daten, die gespeichert werden sollen
* @throws IOException
*/
public void speichereDatei(String art, String name, String[] aktuelledaten) throws IOException
{
String datei = "Error.txt";
switch(art)
{
case "turniername":
datei = "Allgemein/"+ name +".txt";
break;
case "gruppen":
datei = "Gruppen/" + name + ".txt";
break;
case "laender":
datei = "Laender/" + name + ".txt";
break;
default:
break;
}
FileWriter fw = new FileWriter(datei);
BufferedWriter bw = new BufferedWriter(fw);
for (int x = 0; x < aktuelledaten.length; x++) {
bw.write(aktuelledaten[x]);
if(x<aktuelledaten.length){bw.newLine();};
}
bw.close();
}
/**
* Überschreibt eine bereits vorhandene Gruppen Textdatei.
*
* @param teile Informationen, die gespeichert werden sollen
* @throws IOException
*/
public void gruppeReseten(String[] teile) throws IOException
{
String datei = "Gruppen/" + teile[0] + ".txt";
FileWriter fw = new FileWriter(datei);
BufferedWriter bw = new BufferedWriter(fw);
for (int x = 1; x < teile.length; x++)
{
bw.write(teile[x]);
if(x<teile.length-1){bw.newLine();};
}
bw.close();
}
/**
* Fügt der lokalen Textdatei "Gruppen" eine Gruppe hinzu.
* Die vorhandenen Einträge bleiben dabei bestehen.
*
* @param aktuelledaten Information die der Datei angehängt werden soll
* @throws IOException
*/
public void gruppeAnhaengen(String aktuelledaten) throws IOException
{
FileWriter fw = new FileWriter("Gruppen/Gruppen.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
bw.newLine();
bw.write(aktuelledaten);
bw.close();
}
/**
* Löscht die Textdatei mit dem übergebenen Namen in dem übergebenen Verzeichnis.
*
* @param ordner Der Ordner, entweder "Gruppen", "Laender" oder "Allgemein"
* @param dateiname Der Dateiname der Textdatei
* @throws IOException
*/
public void deleteDatei(String ordner, String name) throws IOException
{
String datei = ordner + "/" + name + ".txt";
Files.deleteIfExists(Paths.get(datei));
}
/**
* Öffnet die übergebenen Links im Standardbrowser.
*
* @param args Die zu öffnenden Links (Webadressen)
*/
public void openLink(String[] args)
{
if(!java.awt.Desktop.isDesktopSupported())
{
System.err.println("Desktop is not supported (fatal)");
System.exit(1);
}
if(args.length==0)
{
System.err.println( "Usage: OpenURI [URI [URI ... ]]" );
System.exit( 0 );
}
java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
if(!desktop.isSupported(java.awt.Desktop.Action.BROWSE))
{
System.err.println( "Desktop doesn't support the browse action (fatal)" );
System.exit( 1 );
}
for(String arg:args)
{
try
{
java.net.URI uri = new java.net.URI(arg);
desktop.browse( uri );
}
catch(Exception e)
{
System.err.println(e.getMessage());
}
}
}
/**
* Löscht alle Textdateien, die in den drei Speicherorten liegen (Allgemein, Gruppen, Länder)
*
* @throws IOException
*/
public void deleteAlleDaten() throws IOException
{
File foldergruppe = new File("Gruppen");
File[] listOfFilesGruppe = foldergruppe.listFiles();
for (int i = 0; i < listOfFilesGruppe.length; i++) {
if (listOfFilesGruppe[i].isFile()) {
Files.deleteIfExists(Paths.get("Gruppen/"+listOfFilesGruppe[i].getName()));
}
}
File folderallgemein = new File("Allgemein");
File[] listOfFilesAllgemein = folderallgemein.listFiles();
for (int i = 0; i < listOfFilesAllgemein.length; i++) {
if (listOfFilesAllgemein[i].isFile()) {
Files.deleteIfExists(Paths.get("Allgemein/"+listOfFilesAllgemein[i].getName()));
}
}
File folderlaender = new File("Laender");
File[] listOfFilesLaender = folderlaender.listFiles();
for (int i = 0; i < listOfFilesLaender.length; i++) {
if (listOfFilesLaender[i].isFile()) {
Files.deleteIfExists(Paths.get("Laender/"+listOfFilesLaender[i].getName()));
}
}
}
}