adam bien's blog

Adding And Substracting Path Instances With Java 📎

Method resolve adds Path instances and is useful to create absolute paths. The method relativize substracts Path instances and is useful to remove the root component from the absolute path:

import java.nio.file.Path;
import java.nio.file.Paths;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;


public class PathTest {

    @Test
    public void addPath() {
        Path javaFile = Paths.get("com", "airhacks", "PathsTest.java");
        Path root = Paths.get("src", "main", "java");

        Path absolute = root.resolve(javaFile);

        String expected = "src/main/java/com/airhacks/PathsTest.java";
        String actual = absolute.toString();
        assertThat(actual, is(expected));
    }

    @Test
    public void substractPath() {
        Path absolute = Paths.get("src/main/java/com/airhacks/PathsTest.java");
        Path root = Paths.get("src", "main", "java");

        Path relative = root.relativize(absolute);

	//ignoring the OS-specific separator
        String expected = "com/airhacks/PathsTest.java";
        String actual = relative.toString();
        assertThat(actual, is(expected));
    }

}


See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting. Is Munich's airport too far? Learn from home: airhacks.io.