import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) {
System.out.println();
String currentDirectory = System.getProperty("user.dir");
System.out.println("Current working directory: " + currentDirectory);
useFile("output/testfile.txt");
usePath ("output/pathfile.txt");
System.out.println();
System.out.println("Directory listing");
System.out.println("The current directory set by Intellj and output directory");
File directory = new File(currentDirectory + "/output");
File[] files = directory.listFiles();
for ( File file : files ) {
System.out.println("File: " + file.getAbsolutePath());
}
System.out.println();
}
private static void useFile(String fileName){
File file = new File(fileName);
boolean fileExists = file.exists();
System.out.printf("File '%s' %s%n", fileName,
fileExists ? "exists. " : "does not exist.");
if (fileExists) {
System.out.println("Deleting File: " + fileName);
fileExists= !file.delete();
}
if (!fileExists) {
try {
file.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println("Created File: " + fileName);
if (file.canWrite()) {
System.out.println("Would write to file here");
}
}
}
private static void usePath(String fileName){
Path path = Path.of(fileName);
boolean fileExists = Files.exists(path);
System.out.printf("File '%s' %s%n", fileName,
fileExists ? "exists. " : "does not exist.");
if (fileExists) {
System.out.println("Deleting File: " + fileName);
try {
Files.delete(path);
fileExists = false;
} catch (IOException e) {
e.printStackTrace();
}
}
if (!fileExists) {
try {
Files.createFile(path);
System.out.println("Created File: " + fileName);
if (Files.isWritable(path)) {
Files.writeString(path, """
Here is some data,
For my file,
Just to prove,
Using the Files class and path are better!
""");
Files.readAllLines(path).forEach(System.out::println);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}