diff --git a/.gitignore b/.gitignore
index 480bdf5..900d356 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,4 +36,6 @@ build/
.vscode/
### Mac OS ###
-.DS_Store
\ No newline at end of file
+.DS_Store
+
+examples*.txt
\ No newline at end of file
diff --git a/data.json b/data.json
new file mode 100644
index 0000000..3146042
--- /dev/null
+++ b/data.json
@@ -0,0 +1,89 @@
+{
+ "genres": [
+ {
+ "id": 1,
+ "name": "Crime"
+ },
+ {
+ "id": 2,
+ "name": "Drama"
+ },
+ {
+ "id": 3,
+ "name": "Action"
+ },
+ {
+ "id": 4,
+ "name": "Biography"
+ },
+ {
+ "id": 5,
+ "name": "History"
+ },
+ {
+ "id": 6,
+ "name": "Adventure"
+ },
+ {
+ "id": 7,
+ "name": "Fantasy"
+ },
+ {
+ "id": 8,
+ "name": "Western"
+ },
+ {
+ "id": 9,
+ "name": "Comedy"
+ },
+ {
+ "id": 10,
+ "name": "Sci-Fi"
+ },
+ {
+ "id": 11,
+ "name": "Mystery"
+ },
+ {
+ "id": 12,
+ "name": "Thriller"
+ },
+ {
+ "id": 13,
+ "name": "Family"
+ },
+ {
+ "id": 14,
+ "name": "War"
+ },
+ {
+ "id": 15,
+ "name": "Animation"
+ },
+ {
+ "id": 16,
+ "name": "Romance"
+ },
+ {
+ "id": 17,
+ "name": "Horror"
+ },
+ {
+ "id": 18,
+ "name": "Music"
+ },
+ {
+ "id": 19,
+ "name": "Film-Noir"
+ },
+ {
+ "id": 20,
+ "name": "Musical"
+ },
+ {
+ "id": 21,
+ "name": "Sport"
+ }
+ ],
+ "total": 21
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 52bc355..c1498c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,4 +14,12 @@
UTF-8
+
+
+ com.google.code.gson
+ gson
+ 2.11.0
+
+
+
\ No newline at end of file
diff --git a/quotes.txt b/quotes.txt
new file mode 100644
index 0000000..9b392c1
--- /dev/null
+++ b/quotes.txt
@@ -0,0 +1,3 @@
+I'm not superstitious, but I am a little stitious.
+I am running away from my responsibilities. And it feels good.
+I DECLARE BANKRUPTCY!
\ No newline at end of file
diff --git a/src/main/java/org/FileExamples/AddresesingModes/FileAddressing.java b/src/main/java/org/FileExamples/AddresesingModes/FileAddressing.java
new file mode 100644
index 0000000..a8fcbe7
--- /dev/null
+++ b/src/main/java/org/FileExamples/AddresesingModes/FileAddressing.java
@@ -0,0 +1,28 @@
+package org.FileExamples.AddresesingModes;
+
+import java.io.InputStream;
+import java.nio.file.Path;
+import java.util.Scanner;
+
+public class FileAddressing {
+ static void main() {
+ //relative
+ Path relativePath = Path.of("data.txt");
+ //absolute
+ Path absolutePath = Path.of("C:\\Users\\Lenovo\\data.txt");
+
+
+ //using class path / resources
+ InputStream input = FileAddressing.class
+ .getClassLoader()
+ .getResourceAsStream("data.txt");
+
+ Scanner scanner = new Scanner(input);
+
+ while (scanner.hasNextLine()) {
+ System.out.println(scanner.nextLine());
+ }
+
+ scanner.close();
+ }
+}
diff --git a/src/main/java/org/FileExamples/CreatingFiles/CreateFileExample01.java b/src/main/java/org/FileExamples/CreatingFiles/CreateFileExample01.java
new file mode 100644
index 0000000..906a71c
--- /dev/null
+++ b/src/main/java/org/FileExamples/CreatingFiles/CreateFileExample01.java
@@ -0,0 +1,25 @@
+package org.FileExamples.CreatingFiles;
+
+import java.io.File;
+import java.io.IOException;
+
+public class CreateFileExample01 {
+ static void main() {
+ File file = new File("texts/examples.txt");
+ try
+ {
+ if(file.createNewFile())
+ {
+ System.out.println("File created");
+ }
+ else
+ {
+ System.out.println("File already exists");
+ }
+ }
+ catch(IOException e)
+ {
+ System.err.println(e.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/org/FileExamples/CreatingFiles/CreateFileExample02.java b/src/main/java/org/FileExamples/CreatingFiles/CreateFileExample02.java
new file mode 100644
index 0000000..c30e324
--- /dev/null
+++ b/src/main/java/org/FileExamples/CreatingFiles/CreateFileExample02.java
@@ -0,0 +1,16 @@
+package org.FileExamples.CreatingFiles;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+public class CreateFileExample02 {
+ public static void main(String[] args) {
+ Path path = Path.of("exmaples.txt");
+ try {
+ Files.createFile(path);
+ } catch (IOException e) {
+ System.err.println(e.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/org/FileExamples/DeletingFiles/DeleteFileExample01.java b/src/main/java/org/FileExamples/DeletingFiles/DeleteFileExample01.java
new file mode 100644
index 0000000..fd8aa14
--- /dev/null
+++ b/src/main/java/org/FileExamples/DeletingFiles/DeleteFileExample01.java
@@ -0,0 +1,15 @@
+package org.FileExamples.DeletingFiles;
+
+import java.io.File;
+
+public class DeleteFileExample01 {
+ static void main() {
+ File file = new File("example.txt");
+
+ if (file.delete()) {
+ System.out.println("Deleted file: " + file.getName());
+ } else {
+ System.out.println("Failed to delete the file.");
+ }
+ }
+}
diff --git a/src/main/java/org/FileExamples/DeletingFiles/DeleteFileExample02.java b/src/main/java/org/FileExamples/DeletingFiles/DeleteFileExample02.java
new file mode 100644
index 0000000..a111d2d
--- /dev/null
+++ b/src/main/java/org/FileExamples/DeletingFiles/DeleteFileExample02.java
@@ -0,0 +1,20 @@
+package org.FileExamples.DeletingFiles;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+public class DeleteFileExample02 {
+ static void main() {
+ try
+ {
+ Path path = Path.of("example.txt");
+ Files.deleteIfExists(path);
+ System.out.println("File deleted if it existed.");
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/src/main/java/org/FileExamples/ParsingJson/Genre.java b/src/main/java/org/FileExamples/ParsingJson/Genre.java
new file mode 100644
index 0000000..af35b6d
--- /dev/null
+++ b/src/main/java/org/FileExamples/ParsingJson/Genre.java
@@ -0,0 +1,37 @@
+package org.FileExamples.ParsingJson;
+
+
+public class Genre
+{
+ private Long id;
+ private String name;
+
+ public Genre(Long id, String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ public Genre() {
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String toString() {
+ return id + ". " + name;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/FileExamples/ParsingJson/ParsingJsonExample01.java b/src/main/java/org/FileExamples/ParsingJson/ParsingJsonExample01.java
new file mode 100644
index 0000000..4f967d2
--- /dev/null
+++ b/src/main/java/org/FileExamples/ParsingJson/ParsingJsonExample01.java
@@ -0,0 +1,37 @@
+package org.FileExamples.ParsingJson;
+
+import com.google.gson.*;
+import com.google.gson.reflect.TypeToken;
+
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ParsingJsonExample01 {
+ static void main() {
+
+ try {
+ Path path = Path.of("data.json");
+ String texts = new String(Files.readAllBytes(path));
+
+ JsonObject rootObject = JsonParser.parseString(texts).getAsJsonObject();
+ JsonArray genresArray = rootObject.getAsJsonArray("genres");
+
+ Gson gson = new Gson();
+ Type type = new TypeToken>(){}.getType();
+
+ List genres = gson.fromJson(genresArray, type);
+
+ for(Genre genre: genres)
+ {
+ System.out.println(genre.getId() + ". " + genre.getName());
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/src/main/java/org/FileExamples/ReadingFiles/ReadFileExample01.java b/src/main/java/org/FileExamples/ReadingFiles/ReadFileExample01.java
new file mode 100644
index 0000000..24cf1fc
--- /dev/null
+++ b/src/main/java/org/FileExamples/ReadingFiles/ReadFileExample01.java
@@ -0,0 +1,22 @@
+package org.FileExamples.ReadingFiles;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.Scanner;
+
+public class ReadFileExample01 {
+ static void main() {
+ File file = new File("quotes.txt");
+ try {
+ Scanner reader = new Scanner(file);
+
+ while(reader.hasNext())
+ {
+ String line = reader.nextLine();
+ System.out.println(line);
+ }
+ } catch (FileNotFoundException e) {
+
+ }
+ }
+}
diff --git a/src/main/java/org/FileExamples/ReadingFiles/ReadFileExample02.java b/src/main/java/org/FileExamples/ReadingFiles/ReadFileExample02.java
new file mode 100644
index 0000000..b245a14
--- /dev/null
+++ b/src/main/java/org/FileExamples/ReadingFiles/ReadFileExample02.java
@@ -0,0 +1,22 @@
+package org.FileExamples.ReadingFiles;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+
+public class ReadFileExample02 {
+ static void main() {
+ Path path = Path.of("quotes.txt");
+ try {
+ List lines = Files.readAllLines(path);
+
+ for(String line : lines)
+ {
+ System.out.println(line);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/src/main/java/org/FileExamples/WritingFiles/WriteFileExample01.java b/src/main/java/org/FileExamples/WritingFiles/WriteFileExample01.java
new file mode 100644
index 0000000..3b4061c
--- /dev/null
+++ b/src/main/java/org/FileExamples/WritingFiles/WriteFileExample01.java
@@ -0,0 +1,37 @@
+package org.FileExamples.WritingFiles;
+
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class WriteFileExample01 {
+ static void main() {
+
+ try
+ {
+ FileWriter fileWriter = new FileWriter("examples2.txt");
+ fileWriter.write("I'm not superstitious, but I am a little stitious.\n");
+ fileWriter.write("I am running away from my responsibilities. And it feels good.\n");
+
+ fileWriter.close();
+ System.out.println("Done.");
+ }
+ catch (IOException e)
+ {
+ System.err.println(e.getMessage());
+ }
+
+ try
+ {
+ FileWriter fileWriter = new FileWriter("examples2.txt", true);
+ fileWriter.write("I DECLARE BANKRUPTCY!");
+
+ fileWriter.close();
+ System.out.println("Done.");
+ }
+ catch (IOException e)
+ {
+ System.err.println(e.getMessage());
+ }
+
+ }
+}
diff --git a/src/main/java/org/FileExamples/WritingFiles/WriteFileExample02.java b/src/main/java/org/FileExamples/WritingFiles/WriteFileExample02.java
new file mode 100644
index 0000000..608ae73
--- /dev/null
+++ b/src/main/java/org/FileExamples/WritingFiles/WriteFileExample02.java
@@ -0,0 +1,26 @@
+package org.FileExamples.WritingFiles;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.OpenOption;
+import java.nio.file.Path;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.List;
+
+public class WriteFileExample02 {
+ static void main() {
+ List lines = List.of(
+ "Line 1",
+ "Line 2"
+ );
+
+ Path path = Path.of("examples2.txt");
+ try {
+ Files.write(path, lines);
+ } catch (IOException e) {
+ System.err.println(e.getMessage());
+ }
+ }
+}
diff --git a/src/main/resources/data.txt b/src/main/resources/data.txt
new file mode 100644
index 0000000..e3c5b78
--- /dev/null
+++ b/src/main/resources/data.txt
@@ -0,0 +1 @@
+this is a data file.
\ No newline at end of file