diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingSelectedBudget.java b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingSelectedBudget.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d9dc0848c480616ac5f6db55f7d119732e06138
--- /dev/null
+++ b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingSelectedBudget.java
@@ -0,0 +1,69 @@
+package no.ntnu.idatt1002.demo.data.Budget;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class FileHandlingSelectedBudget {
+
+  private static final String path = System.getProperty("user.dir") + "/src/main/resources/";
+  private static final String currentFileType = ".current";
+  private static final String registerFileType = ".register";
+  private static final String budgetFileType = ".budget";
+
+  public static String readSelectedBudget() throws IOException {
+    BufferedReader br;
+    try {
+      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: CurrentFile.txt does not exist");
+    }
+    System.out.println("Successful read on current file");
+    return br.readLine();
+  }
+
+  public static void updateSelectedBudget(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");
+    }
+  }
+
+  public static boolean isSelectedBudgetEmpty(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 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("Income filepath: " + System.getProperty("user.dir") + "/src/main/resources/" + budgetId + "/" + incomeFileTitle + registerFileType);
+    File incomeFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetId + "/" + incomeFileTitle + registerFileType);
+    incomeFile.createNewFile();
+  }
+
+  public static void createNewExpenseFile(String budgetId, String expenseFileTitle) throws IOException {
+    System.out.println("Expense filePath: " + System.getProperty("user.dir") + "/src/main/resources/" + budgetId + "/" + expenseFileTitle + registerFileType);
+    File expenseFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetId + "/" + expenseFileTitle + registerFileType);
+    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 + budgetFileType);
+    File budgetFile = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetId + "/" + budgetFileTitle + budgetFileType);
+    budgetFile.createNewFile();
+  }
+}