write file
This goes through many items about creating files, listing directories, etc. Several methods require try/catch statements.
path.of
add to path.of
create directory
delete file
create file
files.list
files.walk
files.find
files.exist
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Path basePath = Path.of("");
Path OrigPath = basePath;
System.out.println("Orginal Directory created: " + OrigPath.toAbsolutePath());
try {
Path path = Paths.get("output");
Files.createDirectories(path);
System.out.println("Directory created: " + path);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Base: " + basePath.toAbsolutePath());
System.out.println();
System.out.println("Directory listing ");
try (Stream<Path> paths = Files.list(basePath.toAbsolutePath())) {
paths.forEach(System.out::println);
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println();
System.out.println("Directory Walk");
int maxDepth = Integer.MAX_VALUE; // Search all levels
try (Stream<Path> paths = Files.walk(basePath.toAbsolutePath(), maxDepth)) {
paths.forEach(System.out::println);
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println();
System.out.println("Directory find");
try (Stream<Path> matches = Files.find(OrigPath.toAbsolutePath(), maxDepth,
(path, basicFileAttributes) -> String.valueOf(path.toAbsolutePath()).endsWith(".txt"))) {
matches.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println();
useFile("output/filename.txt");
usePath("output/pathname.txt");
}
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);
}
}
}
}
C:\Users\netadmin\.jdks\openjdk-23.0.2\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.2.4\lib\idea_rt.jar=56625" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production\FileListings Main
Orginal Directory created: C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings
Directory created: output
Base: C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings
Directory listing
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.gitignore
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.idea
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\FileListings.iml
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\src
Directory Walk
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.gitignore
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.idea
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.idea\.gitignore
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.idea\misc.xml
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.idea\modules.xml
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.idea\vcs.xml
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\.idea\workspace.xml
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\FileListings.iml
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production\FileListings
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production\FileListings\Main.class
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production\FileListings\test.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production\test.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output\filename.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output\pathname.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output\test.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\src
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\src\Main.java
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\src\test.txt
Directory find
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production\FileListings\test.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\out\production\test.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output\filename.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output\pathname.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\output\test.txt
C:\Users\netadmin\IdeaProjects\Java_Coding_130\FileListings\src\test.txt
File 'output/filename.txt' exists.
Deleting File: output/filename.txt
Created File: output/filename.txt
Would write to file here
File 'output/pathname.txt' exists.
Deleting File: output/pathname.txt
Created File: output/pathname.txt
Here is some data,
For my file,
Just to prove,
Using the Files class and path are better!
Process finished with exit code 0