Te doy la bienvenida a nuestra página web, aquí encontrarás la respuesta de lo que estás buscando.
Solución:
Utilizar ClassLoader#getResource()
o getResourceAsStream()
obtenerlos como URL
o InputStream
del classpath.
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("com/example/file.ext");
// ...
O si está en el mismo paquete que la clase actual, también puede obtenerlo de la siguiente manera:
InputStream input = getClass().getResourceAsStream("file.ext");
// ...
El ahorro es una historia aparte. Esto no funcionará si el archivo se encuentra en un archivo JAR. Si puede asegurarse de que el archivo está expandido y se puede escribir, entonces convierta el URL
desde getResource()
para File
.
URL url = classLoader.getResource("com/example/file.ext");
File file = new File(url.toURI().getPath());
// ...
A continuación, puede construir un FileOutputStream
con eso.
Preguntas relacionadas:
getResourceAsStream()
versusFileInputStream
Puede intentar lo siguiente siempre que su clase se cargue desde un sistema de archivos.
String basePathOfClass = getClass()
.getProtectionDomain().getCodeSource().getLocation().getFile();
Para obtener un archivo en esa ruta, puede usar
File file = new File(basePathOfClass, "filename.ext");
new File(".").getAbsolutePath() + "relative/path/to/your/files";
Eres capaz de añadir valor a nuestro contenido cooperando tu veteranía en las aclaraciones.