Escribir en una secuencia de archivos devuelta desde getResourceAsStream ()

getResourceAsStream() un InputStream de getResourceAsStream() y pude leer el archivo pasando el InputStream devuelto a un BufferedReader .

¿Hay alguna manera de que pueda escribir en el archivo también?

No directamente, no – getResourceAsStream() está destinado a devolver una vista en recursos de solo lectura.

Sin embargo, si sabe que el recurso es un archivo que se puede escribir, puede pasar por algunos aros, por ejemplo

 URL resourceUrl = getClass().getResource(path); File file = new File(resourceUrl.toURI()); OutputStream output = new FileOutputStream(file); 

Esto debería funcionar muy bien en los sistemas de estilo Unix, pero las rutas de archivos de Windows pueden dar esta indigestión. Pruébelo y descubra, sin embargo, puede estar bien.

¿Hay alguna manera de que pueda escribir en el archivo también?

¿Quién dice que es un archivo? El objective de getResourceAsStream() es abstraer eso porque podría no ser cierto. Específicamente, el recurso puede estar ubicado en un archivo JAR, puede leerse desde un servidor HTTP, o realmente cualquier cosa que el implementador del ClassLoader pueda imaginar.

Realmente no debería querer escribir en un recurso que sea parte de la distribución de su progtwig. En términos conceptuales, es lo incorrecto en la mayoría de los casos. La configuración o los datos específicos del usuario deben ir a la API de Preferencias o al directorio de inicio del usuario.