Hallo,
ist mein erster Post hier und ich beschäftige mich noch nicht so lange mit Java. Habe am Anfang nur so ein paar Übungen gemacht, Zeugs ausrechnen und so.
Habe jetzt mein erstet "sinnvolles" Programm geschrieben. Es ist für meine Mutter, die ein kleines Haushaltsbuch mit Tabellen führt. Das Programm legt eine Datei an und kopiert den Inhalt der Vorlage in diese.
Könnt es euch ja mal anschauen.
Hoffe auf Verbesserungsvorschläge, Kritik und Tipps.
Gruß
Julian
ist mein erster Post hier und ich beschäftige mich noch nicht so lange mit Java. Habe am Anfang nur so ein paar Übungen gemacht, Zeugs ausrechnen und so.
Habe jetzt mein erstet "sinnvolles" Programm geschrieben. Es ist für meine Mutter, die ein kleines Haushaltsbuch mit Tabellen führt. Das Programm legt eine Datei an und kopiert den Inhalt der Vorlage in diese.
Könnt es euch ja mal anschauen.
Hoffe auf Verbesserungsvorschläge, Kritik und Tipps.
Java:
package haushaltsbuch;
import java.io.*;
import java.nio.channels.FileChannel;
import java.util.*;
import java.text.*;
import java.util.regex.Pattern;
/**
*
* @author julian
* @version 0.1.4
*/
public class Haushaltsbuch {
private static void copyFile(File in, File out) throws FileNotFoundException, IOException {
/*
* Kopiert den Inhalt einer Datei in eine Andere
*/
FileChannel inChannel = new FileInputStream(in).getChannel();
FileChannel outChannel = new FileOutputStream(out).getChannel();
try {
inChannel.transferTo(0, inChannel.size(), outChannel);
} catch (IOException e) {
throw e;
} finally {
if (inChannel != null)
inChannel.close();
if (outChannel != null)
outChannel.close();
}
}
private static String date(String schalter) {
/*
* Abfrage des aktuellen Monats und Jahres
*/
Calendar cal = new GregorianCalendar();
Date date = cal.getTime();
if (schalter.equals("monat")) {
DateFormat monat = new SimpleDateFormat("MM' - 'MMMM");
return(monat.format(date));
}
else if (schalter.equals("jahr")) {
DateFormat jahr = new SimpleDateFormat("yyyy");
return(jahr.format(date));
} else
return("");
}
public static void main(String[] args) throws FileNotFoundException, IOException {
String monat = date("monat");
String jahr = date("jahr");
String[] monatTeil = monat.split("\\s");
// Eingabe
System.out.println("\nHaushaltsbuch\n");
String sEingabe = "";
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Haushaltsbuchseite für [" + jahr + "] [" + monatTeil[2] + "] anlegen? ");
try {
sEingabe = input.readLine();
} catch (IOException e) { System.out.println("Eingabefehler"); }
/*
* Falls Eingabe nicht leer
* Prüft, ob die Eingabe einen Punkt als Trenner enthält
* Wenn ja, dann wir die Eingabe am Punkt getrennt
* Die Monatseingabe wird ins richtige Format gebracht
*/
if (!sEingabe.isEmpty()) {
if (sEingabe.contains(".")) {
String[] jahrMonat = sEingabe.split(Pattern.quote("."));
jahr = jahrMonat[0];
monat = jahrMonat[1];
} else {
monat = sEingabe;
}
if (monat.equals("01") || monat.equals("1") || monat.equals("Januar") || monat.equals("januar"))
monat = "01 - Januar";
else if (monat.equals("02") || monat.equals("2") || monat.equals("Februar") || monat.equals("februar"))
monat = "02 - Februar";
else if (monat.equals("03") || monat.equals("3") || monat.equals("März") || monat.equals("märz"))
monat = "03 - März";
else if (monat.equals("04") || monat.equals("4") || monat.equals("April") || monat.equals("april"))
monat = "04 - April";
else if (monat.equals("05") || monat.equals("5") || monat.equals("Mai") || monat.equals("mai"))
monat = "05 - Mai";
else if (monat.equals("06") || monat.equals("6") || monat.equals("Juni") || monat.equals("juni"))
monat = "06 - Juni";
else if (monat.equals("07") || monat.equals("7") || monat.equals("Juli") || monat.equals("juli"))
monat = "07 - Juli";
else if (monat.equals("08") || monat.equals("8") || monat.equals("August") || monat.equals("august"))
monat = "08 - August";
else if (monat.equals("09") || monat.equals("9") || monat.equals("September") || monat.equals("september"))
monat = "09 - September";
else if (monat.equals("10") || monat.equals("Oktober") || monat.equals("oktober"))
monat = "10 - Oktober";
else if (monat.equals("11") || monat.equals("November") || monat.equals("november"))
monat = "11 - November";
else if (monat.equals("12") || monat.equals("Dezember") || monat.equals("dezember"))
monat = "12 - Dezember";
else {
System.out.println("Falsche Monatsangabe!");
System.exit(0);
}
}
// Prüft, ob der Ordner mit dem entsprechenden Jahr vorhanden ist und legt ihn an, falls nicht
File ordner = new File(jahr);
if (ordner.exists() != true) {
ordner.mkdir();
}
/*
* Prüft, ob die Datei mit dem entsprechenden Namen schon vorhanden ist und bricht in dem Fall das Programm ab
* Ansonstens: Legt die Datei mit dem entsprechenden Namen an
*/
String dateiName = jahr+"/"+monat+" "+".ods";
File datei = new File(dateiName);
if (datei.exists() == true) {
System.out.println("Die Datei existiert bereits!");
System.exit(0);
}
try {
datei.createNewFile();
} catch (IOException e) {System.out.println("Datei anlegen fehlgeschlagen"); }
// Kopiert den Inhalt der Vorlage in die neue Dateo
File inF = new File("Vorlage.ods");
File outF = new File(dateiName);
copyFile(inF, outF);
System.out.println("Datei "+ dateiName + " erfolgreich angelegt.");
}
}
Gruß
Julian