Assuming that the program runs under a directory (X) in either Mac and Windows. You can code it like this:
//This will give the current working directory
String directoryPath = System.getProperty("user.dir");
//now get the platform dependent path
String filePath = directoryPath + File.separator + "data" + File.separator + "filename";
File fileToWriteTo = new File(filePath);
File.separator will take care of platform ... your files will always be saved under current working direcoty ... you can provide shortcuts to access those paths and place them on desktop
If a user can execute the program that writes to that directory ... I will assume that the user can also access the files without problem