Skip to content
Snippets Groups Projects
Commit 7ad86960 authored by Harry Linrui XU's avatar Harry Linrui XU
Browse files

Implemented methods for writing and reading the current budget name and...

Implemented methods for writing and reading the current budget name and creating new directories and files + changed file paths
parent cc7b00cc
No related branches found
No related tags found
1 merge request!43Merging frontend-testing into master
......@@ -10,9 +10,29 @@ import java.io.*;
*
* @author andreas
*/
//Få fikset ny return knapp i dualList
//Disable next i dualList før income har blitt lagt til. Kanksje filter som prevneter negativ max amount
//La next button save dataene i to nye filer for persisterign i tilfelle "back" trykkes i newBudgetbudgetr
//Gjøre user.dir path static + Fikse nye klasser for filehandling
//Fikse vindu for old budget + FIKSE TRY CATCHES I ALLE METODENE!!!!!!!!!!
//add menuitems i income og expense slik at
//Gjøre slik at når du completer et budget (next button i budget window)
//skal dette legges til i budgetreigsteret
//System.out.println(System.getProperty("user.dir") + path); =
//C:\Users\xulr0\IdeaProjects\skoleProsjekter\idatt1002\idatt1002_2023_9src/main/resources/
//(System.getProperty("user.dir") + "/" + path) =
//(path) =
//(src/main/resources)
public class FileHandlingBudget {
private static final String filePath = "src/main/resources/Budget"; //TODO CHANGE BACK to /resources/Budget/
private static final String fileType = ".budget";
private static final String path = "src/main/resources/";
private static final String type = ".register";
private static final String maxAmount = "maxAmount=";
private static final String budgetAmount = "budgetAmount=";
private static final String budgetCategory = "budgetCategory=";
......@@ -27,7 +47,8 @@ public class FileHandlingBudget {
* @throws IOException if an input or output exception occurred.
*/
public static void writeGeneralBudgetToFile(String fileTitle, GeneralBudget generalBudget) throws IOException {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + fileTitle + fileType))) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + readCurrentFile() + "/" + fileTitle + fileType))) {
//try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + fileTitle + fileType))) {
bw.write(generalBudget.toString());
} catch (IOException ex) {
throw new IOException("Error writing to file: " + fileTitle);
......@@ -42,16 +63,15 @@ public class FileHandlingBudget {
* @throws IOException if an input or output exception occurred.
*/
public static boolean isEmpty(String fileTitle) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
/*try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
return br.readLine() == null;
}
}
public static boolean fileEmpty(String fileTitle) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.dir") + "src/main/resources/"
+ readCurrentFile("CurrentFile") + fileTitle + fileType));
}*/
BufferedReader br = new BufferedReader(new FileReader(path + readCurrentFile() + "/" + fileTitle + fileType));
System.out.println("Trying budget isEmpty in: " + path + readCurrentFile() + "/" + fileTitle + fileType);
return br.readLine() == null;
}
/**
* Method for checking if a .budget file is new (no categories)
* or old (has budget categories)
......@@ -61,42 +81,97 @@ public class FileHandlingBudget {
*/
public static boolean isNewBudget(String fileTitle) throws IOException {
try (BufferedReader br = new BufferedReader(
new FileReader(filePath + fileTitle + fileType))) {
new FileReader(path + readCurrentFile() + "/" + fileTitle + fileType))) {
//new FileReader(filePath + fileTitle + fileType))) {
for (int i = 0; i < 2; ++i) {
br.readLine();
}
if (br.readLine() == null) {
System.out.println("Is new budget - no max amount");
return true;
}
}
System.out.println("Is 'old' budget - has max amount");
return false;
}
public static void writeBudgetRegisterToArchive(BudgetRegister budgetNames) throws IOException {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.dir") + "/" + path + "Archive.txt"));
System.out.println(System.getProperty("user.dir") + "/" + path + "Archive.txt");
bw.write("motherfucer");
} catch (IOException ioe) {
ioe.printStackTrace();
throw new IOException("Could not write to file: Archive.txt");
}
}
public static BudgetRegister readBudgetArchive(String fileTitle) throws IOException {
BufferedReader br;
BudgetRegister budgetRegister = null;
String budgetName;
try {
br = new BufferedReader(
new FileReader(System.getProperty("user.dir") + "/" + path
+ "Archive.txt"));
} catch (IOException ioe) {
throw new IOException("File does not exist", ioe);
}
String line;
String nextLine = br.readLine();
while ((line = nextLine) != null) {
System.out.println(line);
nextLine = br.readLine();
budgetName = line;
if(budgetRegister == null){
budgetRegister = new BudgetRegister();
}
budgetRegister.addBudgetName(budgetName);
}
return budgetRegister;
}
public static boolean isCurrentFileEmpty(String fileTitle) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.dir") + "src/main/resources/"
+ "CurrentFile.txt"))) {
return br.readLine() == null;
}
}
public static void writeSavingsToFile() {
}
public static void writeMaxAmountToFile(String fileDestination, String maxAmount) throws IOException {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.dir") + "/src/main/resources/"
+ fileDestination + "/Budget.budget"))) {
bw.write("maxAmount=" + maxAmount);
System.out.println("Max amount is...");
} catch (IOException ex) {
throw new IOException("Error writing to file: " + fileDestination);
}
}
public static String readCurrentFile(String fileTitle) throws IOException {
public static String readCurrentFile() throws IOException {
BufferedReader br;
try {
FileReader fileReader = new FileReader(System.getProperty("user.dir") + "/src/main/resources/" + fileTitle + ".txt");
System.out.print("Reading current file...");
FileReader fileReader = new FileReader(System.getProperty("user.dir") + "/src/main/resources/CurrentFile.txt");
br = new BufferedReader(fileReader);
} catch (IOException ioException) {
throw new IOException("File: " + fileTitle + "does not exist");
throw new IOException("File: CurrentFile.txt does not exist");
}
System.out.println("Successful read on current file");
return br.readLine();
}
public static void updateCurrentFile(String budgetName) throws IOException {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.dir") + "/src/main/resources/CurrentFile.txt"))) {
bw.write(budgetName);
System.out.println("Current file is: " + budgetName);
} catch (IOException ex) {
throw new IOException("Error writing to file: " + "CurrentFile.txt");
}
......@@ -104,33 +179,36 @@ public class FileHandlingBudget {
public static boolean deleteBudgetDirectory(String budgetID) {
File targetDirectory = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID);
System.out.println(targetDirectory.getPath());
System.out.println("Deleting directory:" + targetDirectory.getPath());
String[]entries = targetDirectory.list();
assert entries != null;
for(String file : entries){
File currentFile = new File(targetDirectory.getPath(),file);
System.out.println(currentFile.delete());
System.out.println("Deleting file:" + currentFile.delete());
}
return targetDirectory.delete();
}
public static boolean createBudgetDirectory(String budgetID) {
System.out.println("Directory: " + System.getProperty("user.dir") + "/src/main/resources/" + budgetID);
File f = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID);
return f.mkdir();
}
public static void createNewIncomeFile(String budgetID, String incomeFileTitle) throws IOException {
System.out.println(System.getProperty("user.dir") + "/src/main/resources/" + readCurrentFile("CurrentFile") + "/" + incomeFileTitle + fileType);
File incomeFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + incomeFileTitle + fileType);
System.out.println("Income filepath: " + System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + incomeFileTitle + type);
File incomeFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + incomeFileTitle + type);
incomeFile.createNewFile();
}
public static void createNewExpenseFile(String budgetID, String expenseFileTitle) throws IOException {
File expenseFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + expenseFileTitle + fileType);
System.out.println("Expense filePath: " + System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + expenseFileTitle + type);
File expenseFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + expenseFileTitle + type);
expenseFile.createNewFile();
}
public static void createNewBudgetFile(String budgetID, String budgetFileTitle) throws IOException {
System.out.println("Budget filePath: " + System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + budgetFileTitle + fileType);
File budgetFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID + "/" + budgetFileTitle + fileType);
budgetFile.createNewFile();
}
......@@ -149,8 +227,7 @@ public class FileHandlingBudget {
ExpenseCategory expenseCategory = null;
String budgetDescription = null;
try (BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.dir") + "src/main/resources" + fileTitle + fileType))) {
System.out.println(filePath + fileTitle + fileType);
try (BufferedReader br = new BufferedReader(new FileReader( System.getProperty("user.dir") + "/" + path + readCurrentFile() + "/" + fileTitle + fileType))) {
String line;
String nextLine = br.readLine();
while ((line = nextLine) != null) {
......
......@@ -5,6 +5,7 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.*;
import java.time.LocalDate;
import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget;
/**
......@@ -15,6 +16,8 @@ import java.time.LocalDate;
*/
public class FileHandling{
private static final String filePath = "src/main/resources/Economics/";
private static final String path = "src/main/resources/";
private static final String fileType = ".register";
private static final String date = "date=";
private static final String description = "description=";
......@@ -30,7 +33,8 @@ public class FileHandling{
* @throws IOException if an input or output exception occurred.
*/
public static <T extends Item>void writeItemRegisterToFile(final ItemRegister<T> itemRegister, String fileTitle) throws IOException {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + fileTitle + fileType))) {
//try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + fileTitle + fileType))) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType))) {
if (itemRegister.isEmpty()){
bw.write("");
} else{
......@@ -49,13 +53,16 @@ public class FileHandling{
* @throws IOException if an input or output exception occurred.
*/
public static boolean isEmpty(String fileTitle) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
/*try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
if (br.readLine() == null) {
return true;
} else {
return false;
}
}
}*/
BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType));
System.out.println("Checking if income is empty in: " + path + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType);
return br.readLine() == null;
}
/**
......@@ -72,7 +79,8 @@ public class FileHandling{
double amount = 0;
boolean reoccuring = false;
IncomeCategory incomeCategory = null;
try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType))) {
//try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
String line;
String nextLine = br.readLine();
while ((line = nextLine) != null) {
......@@ -119,7 +127,8 @@ public class FileHandling{
double amount = 0;
boolean reoccuring = false;
ExpenseCategory expenseCategory = null;
try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType))) {
//try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
String line;
String nextLine = br.readLine();
while ((line = nextLine) != null) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment