Basil Bourque
Basil Bourque

Reputation: 338835

Add a file name to a Path object

I have a Path object leading to a folder.

Path pathToFolder = Paths.get( "/Users/someuser/" );

…or the recommended way using Path.of:

Path pathToFolder = Path.of( "/Users/someuser/" );

I want to create a file named "whatever.text" in that folder using Files.newBufferedWriter where I pass a Path object.

BufferedWriter writer = Files.newBufferedWriter( pathToFile ) ;

How do I transform my pathToFolder to get a Path object pathToFile?

I need more than mere string manipulation, as these are soft-coded values determined at runtime. And I am trying to be cross-platform as well.

This seems like an obvious question, but I could not find any existing post (the terminology does make searching tricky).

Upvotes: 10

Views: 13743

Answers (1)

Samuel Philipp
Samuel Philipp

Reputation: 11040

Path.resolve

You are looking for Path.resolve():

Converts a given path string to a Path and resolves it against this Path in exactly the manner specified by the resolve method. For example, suppose that the name separator is "/" and a path represents "foo/bar", then invoking this method with the path string "gus" will result in the Path "foo/bar/gus".

So you should use this:

Path pathToFolder = Path.of("/Users/someuser/");
Path pathToFile = pathToFolder.resolve("your-file-name");
BufferedWriter writer = Files.newBufferedWriter(pathToFile);

Upvotes: 19

Related Questions