Just some quick code...
private void createFileForTesting( String filename, String content ) throws IOException { File f = new File( filename ); if( f.exists() ) f.delete(); f.createNewFile(); FileWriter fw = new FileWriter( f.getAbsoluteFile() ); BufferedWriter writer = new BufferedWriter( fw ); writer.write( content ); writer.close(); } private void deleteJsonFileCreatedForTesting( String filename ) { File f = new File( filename ); if( f.exists() ) f.delete(); }
import java.nio.file.Path; import java.nio.file.Paths; import static java.util.Objects.nonNull; public class Filename { final String filepath; final String filename; final String parent; final String extension; final String basename; public Filename( final String FILEPATH ) { filepath = FILEPATH; Path path = Paths.get( FILEPATH ); parent = path.getParent().toString(); filename = path.getFileName().toString(); int dot = filename.lastIndexOf( '.' ); extension = ( dot > 0 ) ? filename.substring( dot+1 ) : null; basename = ( nonNull( extension ) ) ? filename.substring( 0, filename.length() - extension.length() - 1 ) : filename; } public String filepath() { return filepath; } public String filename() { return filename; } public String parent() { return parent; } public String extension() { return extension; } public String basename() { return basename; } }
Output running against FILEPATH of /home/russ/Documents/poop.x.dat is:
filename(): poop.x.dat parent(): /home/russ/Documents basename(): poop.x extension(): dat