Foros del Web » Programación para mayores de 30 ;) » Java »

Guardar un archivo en disco en cualquier Sistema Operativo desde Java

Estas en el tema de Guardar un archivo en disco en cualquier Sistema Operativo desde Java en el foro de Java en Foros del Web. Hola, saludos a todos. Espero estén bien, programando felizmente en sus hogares y trabajo. Quisiera saber cómo guardar un documento de texto plano en una ...
  #1 (permalink)  
Antiguo 20/07/2015, 00:13
Avatar de carlitosMiranda  
Fecha de Ingreso: marzo-2015
Ubicación: Colombia
Mensajes: 32
Antigüedad: 9 años, 9 meses
Puntos: 1
Información Guardar un archivo en disco en cualquier Sistema Operativo desde Java

Hola, saludos a todos. Espero estén bien, programando felizmente en sus hogares y trabajo.
Quisiera saber cómo guardar un documento de texto plano en una ruta especifica del disco independientemente del sistema operativo que se esté usando, pues hasta donde tengo entendido, Java es multiplataforma, y quisiera saber qué código usar. Tengo un programa de escritorio que ejecuto en Windows y que muestra en un entorno gráfico las opciones para guardar un determinado fichero, y aunque tengo una ruta especificada, estoy seguro que esa misma ruta NO servirá para sistemas como Linux y sus distribuciones, ya que he leído que posee una "Estructura de archivos" o "Sistemas de archivos" distinta, y que la forma de separar carpetas y subcarpetas no es la misma. Ejemplo: los separadores "\" ó "/".
Ademas tengo problemas para ejecutar la aplicación es algunos sistemas de Windows, ya que me muestran mensaje de error. Mi hipótesis principal son los permisos de escritura y/o lectura de archivos en ciertas rutas del disco.
El lugar donde decidí guardar ficheros y que creo se puede sin ninguna restricción es C:\Users\Public\. Pero me gustaría saber como podría hacerlo en la carpeta del Usuario de Windows, también determinar la unidad del sistema sin importar si es C: u otra letra, pero mas que todo quisiera hacerlo multiplataforma y seleccionar una ruta genérica existente en todos los sistemas operativos.
La aplicación Java pueden verla en OneDrive: https://onedrive.live.com/redir?resid=6CC5478FA8B58BC4!1384&authkey=!AEa1-eW7tI3C_CU&ithint=folder%2cjar
Pueden probar a ver si ejecuta correctamente y si los ficheros se guardan sin ningún problema.
Gracias por su colaboración.
Saludos
  #2 (permalink)  
Antiguo 20/07/2015, 01:04
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Guardar un archivo en disco en cualquier Sistema Operativo desde Java

Hola:

Si lo haces desde java, la barra / funciona bien siempre, independientemente de que sea linux o windows. En cualquier caso, File.separator te da el correcto para el sistema operativo en el que estés.

El directorio del usuario (tanto windows como linux), lo puedes obtener con System.getProperty("user.home") y es posiblemente la mejor opción.

Lo de saber si es C u otra unidad.... ya estás siendo específico de windows, linux no tiene visibles las unidades. La clase FileSystemView puede ayudarte con estos temas http://docs.oracle.com/javase/1.5.0/...ystemView.html . Tendrías que ir haciendo código para "interrogar" al sistema si tiene unidad C, si no la tiene, etc, etc.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 20/07/2015, 20:58
Avatar de carlitosMiranda  
Fecha de Ingreso: marzo-2015
Ubicación: Colombia
Mensajes: 32
Antigüedad: 9 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Guardar un archivo en disco en cualquier Sistema Operativo desde Java

Waw. Muchas Gracias Bro. Usaré esas funciones y clases y lo ejecutaré en los sistemas operativos.
No confiaba mucho en el trozo de codigo "File.separator" pero ahora estoy seguro que no tendré problemas con él.
Espero no tener problemas con los permisos de creación de carpetas y archivos en las rutas.
Excelente respuesta, algo mas de donde aprender. Gracias amigo.

Última edición por carlitosMiranda; 20/07/2015 a las 21:03

Etiquetas: carpeta, discoduro, ruta, sistemas-operativos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:15.