Я согласен с Dolph, однако вы можете также рассмотреть альтернативы использованию скрытых файлов. Во-первых, вы теперь зависите от (attrib) команды (Windows). Во-вторых, тот факт, что файл помечен как скрытый, не означает, что пользователь не может его видеть или изменять (на моем компьютере всегда отображаются скрытые файлы). В качестве альтернативы вы можете рассмотреть возможность использования стандартных расположений каталогов и соглашений об именах файлов. Например, в Windows стандартное место для размещения данных вашего приложения находится в папке «Данные приложения». Вы можете найти эту папку, используя системное свойство "user.home":
System.out.println(System.getProperty("user.home"));
//prints out something like C:\Documents And Settings\smithj
Вы можете использовать это для создания своей собственной папки Application Data:
//For Windows
File appDataDir = new File(System.getProperty("user.home"), "Application Data\\MyWidgetData");
Аналогично, в * nix-средах приложения обычно хранят свои данные в каталоге .xyz в домашнем каталоге:
//*nix OSes
System.out.println(System.getProperty("user.home"));
//prints out something like /user/home/smithj
File appDataDir = new File(System.getProperty("user.home"), ".MyWidgetData");
Вы можете посмотреть на свойство os.name, чтобы определить, в какой среде вы работаете, и построить правильный путь на основе этого.