Ubicación para almacenar archivos guardados en una máquina local en Java

He creado un juego de aplicaciones / applets de Java que debería guardar los niveles que el usuario puede crear en su máquina local. Digo applet / aplicación porque puede ejecutarse como una aplicación o como un applet. Actualmente estoy usando esto para escribir el archivo:

BufferedWriter bf = new BufferedWriter(new FileWriter("Circles/levels/level.txt"));
for (int i = 0; i < lines.size(); i++) {
    bf.write(lines.get(i));
    bf.newLine();
}

líneas es una lista de arrays con las líneas para escribir en el archivo.

y

FileReader fr = new FileReader("Circles/levels/level.txt");
        BufferedReader bf = new BufferedReader(fr);
        lines = new ArrayList<String>();
        while (true) {
            String line = bf.readLine();
            if (line == null) {
                break;
            }
            lines.add(line);
        }
        bf.close();

para leer el archivo Esos están rodeados de bucles try / catch, solo estoy mostrando lo que tengo que hacer.

Esto funciona bien, pero parece ser una ubicación completamente diferente en diferentes sistemas operativos, y la aplicación se almacena en una ubicación diferente como el applet.

Me gustaría una forma de obtener una ruta absoluta a un lugar para guardar niveles que no cambiarían sin importar desde dónde se ejecute el programa Java, y sería lo mismo si lo ejecutara como una aplicación y como un applet. También sería bueno tener este trabajo en todos los sistemas operativos (Linux, Windows, Mac).

Respuesta 1

¿Por qué Hashmap usa internamente una LinkedList en lugar de una Arraylist cuando dos objetos se colocan en el mismo depósito en la tabla hash?

Tengo curiosidad, ya que he configurado pestañas Fragment en una FragmentActivity, cómo recargar un fragmento desde FragmentActivity o desde el Fragment mismo, para purgar y recargar esa pestaña. YO ...

Estoy usando GRPC-Java 1.1.2. En una sesión activa de GRPC, tengo algunas secuencias bidireccionales abiertas. ¿Hay alguna forma de limpiarlos del cliente cuando el cliente se está desconectando? Cuando trato de ...

He descargado gdx-setup.jar del sitio web y lo ejecuto como: java -jar gdx-setup.jar Selecciono las opciones que quiero y genero el proyecto para la idea (libgdx 1.6.2). Cuando hago clic en el botón generar, ...