guardar un archivo en java

Iniciado por Beginner Web, 14 Noviembre 2019, 23:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

Buenas quiero guardar un archivo excl , me sale que se guardó con exito pero nada , ayuda :(

Código (java) [Seleccionar]
public class ArchivoExcel {

private static String path = "C:\\Users\\Yuna\\compra.xls";

public static void main(String[] args) {
   
        HSSFWorkbook workbook = new HSSFWorkbook();

        HSSFSheet primeraHoja = workbook.createSheet("Primera hoja en blanco");
..
        HSSFRow rowA = primeraHoja.createRow(0);
        HSSFCell cellA = rowA.createCell(0);
        cellA.setCellValue(new HSSFRichTextString("PRIMER HOJA"));

        try {
        FileOutputStream salida = new FileOutputStream(path); 
            workbook.write(salida);
            salida.close();
            System.out.println("venta.xlsx guardado con exito!");
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }

}
7w7

@XSStringManolo

Creo que fileoutputstream manda un stream de datos a un archivo. Archivo que en tu lugar no existe porque no lo creas.

Prueba así:
Código (java) [Seleccionar]
File archivoCompraExcel = new File("C:\\Users\\Yuna\\compra.xls");
FileOutputStream Salida = new FileOutputStream(archivoCompraExcel);


Creo que tu código funciona si existe el archivo en la ruta, si fileoutputstream acepta rutas como parámetros que creo que sí que acepta tanto rutas como objetos.


Beginner Web

uhhh ya me estaba volviendo loca

Código (cpp) [Seleccionar]
try {   
        File archivoExcel = new File("ruta/existente");
        FileOutputStream Salida = new FileOutputStream(archivoExcel);
workbook.write(Salida);
Salida.close();
System.out.println("Guardado con exito!");
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }


Gracias cuanto le debo?  ;-)
7w7

rub'n

Muy bien por los dos lo lograron, pero lo correcto es que usen el Try - with resources, y no les haria falta invocar el .close, o sea, cerrar el flujo

Esa ruta la pueden obtener mejor con un JFileChooser en runtime es lo mas correcto, y no tendrán necesidad de escribir el String con la ruta, es un fastidio.

Ejemplo https://foro.elhacker.net/java/jfilechooser_guardar_un_archivo_con_nombre_preterminado-t489899.0.html

Dulce chavalina, creo que no lo buscaste la otra ves. LMAO.


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

@XSStringManolo

Yo por el programa entendí que quiere crear un archivo que no existe en una ruta. Entonces no puede obtener de algo que aún no creó.

Lo que comentas de resources como va? Normalmente cierro los flujos a mano con .close para no malgastar recursos.

rub'n

#5
Cita de: @?0!,5^34 en 15 Noviembre 2019, 02:06 AM
Yo por el programa entendí que quiere crear un archivo que no existe en una ruta. Entonces no puede obtener de algo que aún no creó.

Lo que comentas de resources como va? Normalmente cierro los flujos a mano con .close para no malgastar recursos.

En el ejemplo que puse hace todo, si no existe el fichero lo único que tienes que hacer es darle un nombre para poder ser escrito.

En la línea 23, cuando se obtiene el path con el JFileChooser se le concatena el nombre del archivo y listo.

Y en la línea 25 se usa el try- with resources


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

@XSStringManolo


mr-medi

Otra opción seria  comprobar si el fichero existe o no y en caso de que no exista lo creas, así no tienes que estar pendiente de si esta creado.

        File fichero = new File("fichero.xls");
        if(!fichero.exists())
        {
            try
            {
                fichero.createNewFile();
            }
            catch (IOException ex)
            {
                System.out.println(ex.getMessage());
            }
        }

<?php
       header
("Location: TheHackerWay");