✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
@JoaquinLunaWainer Жыл бұрын
No dejo de darte likes en cada video, pero me gustaria señalarte como mejora que los finales de archivo son un excelente ejemplo para poner en practica los bucles do-while que en general la mayoria de los desarrolladores suelen temerles o dejarles en el olvido y en muchas ocasiones suelen ser mucho mas eficientes... Te recuerdo que te felicito por todos tus cursos y me parecen excelentes
@_xaplin_6 жыл бұрын
Juan, eres increible. Habia intentado aprender a programas varias veces, y siempre con tu curso, pero siempre lo dejaba. Al final, me meti hacer el DAW, y en clase, bastante mal, pero con tus videos, me funciona todo. Muchisimas gracias por el trabajo que haces, que es de mucha ayuda, y si tuviera que pagar una academia, no me lo podria permitir. Por fin, puedo aprender de verdad. Muchas gracias.
@kinyoldboy92403 жыл бұрын
Cuando le diste el tamaño al array datos_entrada tuviste en cuenta el -1 final, por eso al leer el array te devuelve un cero en la última posición porque al no asignarle el -1 a esa posición por defecto se queda en 0. Muchas gracias por este curso, una vez más!!!!
@mickeymalaspina55863 жыл бұрын
Increíble, en videos de30 minutos aprendo más que clase,,,GRAN TRABAJO
@Alfonso_javier133 жыл бұрын
Este canal es increible!
@EstudioDocumentales2 жыл бұрын
Muchas gracias por el contenido, como siempre atento a todos tus cursos impartidos por que explicas muy bien, muy claro.
@evanderjimenez89872 жыл бұрын
Hola amigo , primeramente agradecerte por los vídeos , seguidamente te tenía una consulta , y es que si estos vídeos se pueden utilizar para convertir y después obtener un vídeo de un arreglo igual a la imagen aquí utilizada , muchas gracias!
@pacogod2 жыл бұрын
Quieres convertir un video a un arreglo de bytes, cierto? De ser así si es posible
@alexanderthegreat81569 жыл бұрын
Muchas gracias por el curso. Este video salvo mi tarea literalmente xD
@pildorasinformaticas9 жыл бұрын
+Alexking0615 Gracias por seguir mis vídeos. Me alegro deque hayan sido de utilidad. Un saludo
@joselosddrd7 жыл бұрын
Un ejemplo bastante didactico... Felicidades
@joselosddrd7 жыл бұрын
que va felicidades a mi mismo que lo reconosco :)
@juanpablonunez13332 жыл бұрын
Excelente el video Pildoras
@ronnychamba42143 жыл бұрын
Gracias profe , por hay encontre otra alternativa para obtener el numero de bytes de un archivo, podria ser , int numerobytes = miFileInputStream.available(); tener en cuenta que el metodo available() segun la api 'Devuelve una estimación del número de bytes restantes que se pueden leer' , esto quiere decir que se debe invocar al metodo available() antes de leer los bytes (antes de utiliza el metodo read()), por que de lo contrario, available() devolvera el valor de '0'( ya que no hay bytes por leer).
@giomarsalazar75475 жыл бұрын
Buenas Tarde. Profesor Juan Diaz Gomez. Thanks Very Much.-
@jordibonastre26427 жыл бұрын
Hola profe ! como siempre el mejor curso de toda la red tengo una dudilla rapida : en el min 8:16 creas un if sin parentesis me podrias explicar en que casos no es necesario usarlo gracias de antemano :) pd: tienes cuenta de paypal para invitarte a una cerveza ? ( que en estas epocas del año hacen mucha falta xD) un saludo!!
@martiserra12717 жыл бұрын
Un if sin parentesis se pueden usar solo cuando solo hay una instruccion a dentro
@teldatamcy565611 ай бұрын
No sé porque pero cuando dices canal de flujo de datos abierto, me viene a la mente la ultima escena del capitulo final de la serie Dark donde había un pasillo que comunicaba el pasado con el presente...
@piterla102 жыл бұрын
Eres un maquina
@memejamas38183 жыл бұрын
gracias profe
@willianernestocondevanegas48199 жыл бұрын
Para darte las gracias por este tutorial, lo he seguido desde el inicio ya que no tenia ideas de programación en java me parecen buenisimos pues mi idea es llegar al punto donde pueda crear mis propias interfaces y acoplarlas a mis proyectos de la universidad en la parte de automatización y electrónica. tengo una inquietud para este tipo de procedimiento existe la posibilidad de crear algún tipo de buffer o algo así como en vídeos anteriores???
@pildorasinformaticas9 жыл бұрын
WILLIAN ERNESTO CONDE VANEGAS Hola !! Gracias por el comentario. Me alegro de que te gusten los vídeos. Sí, siempre existe la posibilidad de crear un buffer para este tipo de operaciones exactamente igual que lo hicimos en vídeos anteriores. Si tengo oportunidad volveré a crear algún buffer de datos más en los vídeos siguientes. Un saludo
@pildorasinformaticas9 жыл бұрын
WILLIAN ERNESTO CONDE VANEGAS Por cierto. Referente a la otra duda que me planteabas puedes enviarlo a cursos@pildorasinformaticas.es
@willianernestocondevanegas48199 жыл бұрын
agradezco tu pronta respuesta, al no encontrar información en la web sobre mi problema y observando que a nadie mas le presentaba asumí que podía se parte de mi PC así que lo reinicié y cuando he vuelto a ejecutar el código funcionó, la verdad desconozco la fuente de este fallo pero ya no lo presenta...me gustaría saber si dentro de lo que tienes programado para este curso abordaras algún tipo de clase que se puede utilizar para comunicaciones seriales, ya que como te he manifestado mi objetivo es poder integrar este conocimiento que estas compartiendo en mis proyectos, para crear interfaces y comunicarme con otros dispositivos.........nuevamente agradecerte por ese deseo tuyo de compartir conocimiento de calidad y la dedicación que te caracteriza.
@pildorasinformaticas9 жыл бұрын
Sí, en la segunda parte del curso donde abordaremos todo lo referente a JEE, veremos comunicaciones. Un saludo
@fermingomez24818 жыл бұрын
Inge solo como observacion, en este tuto pudo haber usado un "BufferedInputStream" para almacenar el archivo leido ya que a mayor tamaño del archivo mas recursos consume en estar leyendo byte a byte del archivo
@pildorasinformaticas8 жыл бұрын
+Fermin Gomez Ingeniero, veo que apostillas todos mis códigos. Haz una cosa: pon aquí tu código entero para ver si funciona y si efectivamente es más eficiente que el mío. Así podremos aprender todos. Un saludo!!
8 жыл бұрын
Hola Juan: Me resulta magnífico este curso y te felicito. Una pregunta: existe un índice de este curso y así reconocer a que vídeo ir para repasar algo concreto? De antemano muchas gracias
@pildorasinformaticas8 жыл бұрын
Hola. Gracias por el comentario. Puedes ir a la lista de reproducción: kzbin.info/aero/PLU8oAlHdN5BktAXdEVCLUYzvDyqRQJ2lk Un saludo!!
@marioolivera28438 жыл бұрын
Hola Juan estás desperdiciando recursos en ese código al crear variable booleana y un if, así quedaría mi código FileInputStream archivo = new FileInputStream("imagen.JPG"); int byte_archivo = archivo.read(); while(byte_archivo != -1) { System.out.println(byte_archivo); byte_archivo = archivo.read(); } Saludos!
@Dotaproplayer7 жыл бұрын
(y) Prodigio.
@ignaciourbaez8 жыл бұрын
buenos días no se si mas adelante se usara el JFileChooser pero este método se puede combinar con esta clase
@pildorasinformaticas8 жыл бұрын
Hola !! creo recordar que JFileChooser se utiliza en los vídeos dedicados al acceso de ficheros. Hay una práctica por ahí en la que utilizamos el método. El problema es que son tantos vídeos que ya no recuerdo en qué vídeo expliqué una cosa u otra. Un saludo!!
@ignaciourbaez8 жыл бұрын
muchas gracias por atender nuestras preguntas ya logre hacerlo por mi cuenta aunque solo para leer utilice solo el JFileChooser para obtener un objeto File pero para la escritura todavía no he intentado
@marioolivera28438 жыл бұрын
Juan el array datos_entrada tendria que ser de tipo short, porque sino también estarías desperdiciando muchos recursos
@pildorasinformaticas8 жыл бұрын
+Mario Olivera Hola !! No recuerdo el código de este vídeo pero seguro que tienes razón. De todas formas, tal como indiqué en el vídeo en el que expliqué los tipos de datos (de eso si me acuerdo), se suele utilizar "int" como tipo de datos comodín aunque se desperdicie algo de recursos. Un saludo!!
@ssmatiuri9 жыл бұрын
Hay un pequeño problema en el código: la llamada a contador++ se hace independientemente del valor que devuelve el método read(), por lo que cuando llega al final del archivo también va a incrementar contador en uno. Es por eso que en la última ejecución imprimió un 0. Yo haría un bucle while(true) y después de llamar al méto read() haría if (byte_entrada == -1) break;. Todo lo demás lo sacaría del condicional. Y también tengo una pregunta: no existe un método que devuelve la cantidad de bytes del archivo para usar eso a la hora de determinar las posiciones del array?
@pildorasinformaticas9 жыл бұрын
Matías Totalmente cierto lo que comentas del contador. Si me acuerdo lo mencionaré en el próximo vídeo. respecto a la pregunta, que yo sepa no. Pero ya sabéis lo amplia que es la API de Java... Un saludo
@fermingomez24818 жыл бұрын
Inge para no tener que contar los bytes hubiera usado el metodo avalable() de la clase bufferInputStream(despues de haber creado el buffer), ejemplo: int size_buffer = memoriaAux.available(); , (donde "memoriaAux" es mi objeto bufferInputStream)
@pildorasinformaticas8 жыл бұрын
+Fermin Gomez Ingeniero, veo que apostillas todos mis códigos. Haz una cosa: pon aquí tu código entero para ver si funciona y si efectivamente es más eficiente que el mío. Así podremos aprender todos. Un saludo!!
@martiserra12717 жыл бұрын
No acabo de entender una cosa, la informacion de la imagen viene dada por un conjunto de bytes, entonces cuando accedes a la informacion porque te da valores decimales en lugar de valores de bytes?
@joseleonardobaqueroolaya54556 жыл бұрын
Cordial saludo tengo entedido que un Byte se puede representar en binario, octal, hexadecimal y decimal
@ivandez18116 жыл бұрын
Yo hice este codigo para ver cual es el limite y me imprimio todas las lineas, al menos la version de eclipse que tengo yo imprime muchas, MUCHAS lineas int contador=0; while (contador
@oscargm19794 жыл бұрын
Recopilando un poco de todos los comentarios me ha quedado bastante bien!: public static void main(String[] args) { int contador=0; try { //clase para leer flujos de bytes.Hereda de la abstracta InputStream FileInputStream archivolectura= new FileInputStream("C:/Users/oscar/OneDrive/Escritorio/Imagenes/terminioA.jpg"); long tam= archivolectura.getChannel().size(); short [] datos_entrada= new short[(short)tam]; //
@nataliegomez4804 жыл бұрын
nada, que no me sirve. Solo me dice que no encuentra la foto. Y con el código del video me sale 0
@lulioarturoherreramestanza76575 жыл бұрын
Veo 74.3kb si lo quiero guardar en BD es algo pesado me parece. Cuánto es el peso de la imagen original del ejemplo? Hay forma de serializarlo y que se reduzca el tamaño? alguna librería propia del java que haga esto mas pequeño?
@josechambi74834 жыл бұрын
ENCONTRASTE ALGUNA SOLUCION?
@guaashoperez47863 жыл бұрын
Si declaraste la variable final_ar como falsa, no tendria el while loop que leer como while(final_ar es verdadero)?
@guaashoperez47863 жыл бұрын
Y supe por que
@alejandrogallardo2445 жыл бұрын
¿Si utilizo la clase BufferedInputStream sería parecido al proceso en el que cambiamos de FileReader a BufferedReader? Es decir, ¿ahorraría recursos?
@pildorasinformaticas2 жыл бұрын
No. Siempre que utilizamos un Buffer nos aseguramos de la continuidad en el flujo de datos pero el consumo de recursos es similar.
@jimmyzarate82938 жыл бұрын
Hola una consulta, como podría enviar y recibir datos desde puerto serial? "COM",saludos
@pildorasinformaticas8 жыл бұрын
No tengo ni idea. Lo siento... (ese puerto aún se utiliza?) Un saludo!!
@architect86757 жыл бұрын
Busca en stackoverflow, es una mina de respuestas para muchas cosas.
@waroo00079 жыл бұрын
Excelente como siempre, algo curioso me pasa con este codigo resulta que el codigo a mi entender lo tengo bien, corro la imagen con el bucle while cuando imprimo me imprime el valor de turno + las veces del contador... aca es donde me biene lo raro: con extamente el mismo codigo si quiero imprimir el array me imprime "0" solamente+una excepsion tipo: java.lang.ArrayIndexOutOfBoundsException y me parece raro porque utilizo basicamente el mismo codigo a diferencia de que cuando voy a imprimir en una ocacion pruevo sin "array" y funciona (pero imprime el -1) y cuando voy a imprimir el array me imprime "0+la excepsion anterior".... //System.out.println(byteEntrada+" "+contador); // Funciona System.out.println(datosEntrada[contador]); //ArrayIndexOutOfBoundsException alguna idea
@evanderjimenez89872 жыл бұрын
Hay alguna manera de ya saber de antemano cual es el tamaño del archivo a analizar ?
@franciscobarrachinablanco91299 жыл бұрын
Hola estimado profe !!! He encontrado el error. Como siempre una llave mal cerrada. La que cierra el condicional es la culpable. Gracias por estar ahi. Un saludo.
@pildorasinformaticas9 жыл бұрын
+francisco barrachina blanco Errores difíciles de detectar. me alegro de que lo hayas visto tú solo. Un saludo
@franciscobarrachinablanco91299 жыл бұрын
Hola Profe !!! El codigo que aparece en este video no funciona en mi PC, cosas de la informatica. He utilizado imagenes con diferentes extensiones (jpg , png, gif ), por si fuese ese el problema, pero no. El codigo me muestra en consola -1 del final del fichero y 1 de la variable contador pero nada mas. El tamaño de la imagen son 7.02 KB (7.191 bytes). Te pongo el codigo por si acaso se me escapa algo. Un saludo y gracias. package leyendo_escribiendo_streams; import java.io.*; import java.io.IOException; public class Leer_Escribir { public static void main(String[] args) { int contador = 0; try{ FileInputStream archivo_lectura = new FileInputStream("C:/Users/Francisco/Desktop/imagenes/icon-airplane.PNG"); boolean final_ar = false; while(!final_ar){ int byte_entrada = archivo_lectura.read(); if(byte_entrada == -1){ final_ar = true; System.out.println(byte_entrada); contador ++; } } archivo_lectura.close(); }catch(IOException e){ System.out.println("no se encontro el archivo"); } System.out.println(contador); } }
@juan04069519 жыл бұрын
+francisco barrachina blanco te falta un if lee tu codigo le estas diciendo que si byte_entrada==-1 te imprima e incremente el contador entonces por eso solo imprime una vez porque el byte_entrada solo llega una vez al -1 . SOLUCION quita el contador y el system.out.println de donde lo tienes y abajo de ese if pon otro : if (byte_entrada!=-1){ contador++ System.out.println(byte_entrada) Espero haberme explicado Saludos
@pildorasinformaticas9 жыл бұрын
+juan antonio rosas Ohhhh cuánto agradezco este tipo de ayuda entre vosotros, de verdad. Mil gracias
@franciscobarrachinablanco91299 жыл бұрын
Hola Juan Antonio !!! Te agradezco que le hecharas un vistazo al codigo. Encontre el error al dia siguiente cuando estaba mas descansado .Hay veces que por mucho que miras no ves nada. Saludos man.
@juan04069519 жыл бұрын
pildorasinformaticas gracias a usted por su enseñanza creo q si nos ayudamos entre nosotros aprendemos mas y disminuimos su cantidad de trabajo en resolver dudas (que de por si ya es mucha) Saludos
@juan04069519 жыл бұрын
francisco barrachina blanco que bien que vieras el error saludos y cualquier cosa aqui andamos
@PabloSanchez-xt2vn5 жыл бұрын
No se porque motivo pero a mi me imprime el total de bytes con una excepción "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 732597 " agradezco alguna solución o sugerencia. Saludos.
@luciopaulino38784 жыл бұрын
Esa excepción te indica que te pasaste del limite permitido del array, es decir, quisiste colocar un valor en una posición inexistente del array, en la posición 732597 aparentemente. Puede ser que sea debido a que te esta ingresando el -1 en el array también, aunque no podría saber sin el código.
@angelrizos12974 жыл бұрын
Una duda : Al igualar la variable boolean final_ar a false, por qué indica Juan que dentro del while es implícitamente true, y tiene que usar el operador "!" para que lo reconozca como false? Si alguien puede aclararme esto sería de gran ayuda
@taniaosuna84193 жыл бұрын
Independientemente de como lo inicialices, si tiene el símbolo "!" es false.
@fermingomez24818 жыл бұрын
Mi metodo quedo de esta forma, espero y le heche un ojo void leer_archivo(){ try{ File ruta = new File("C:/Users/Hp/Desktop/Acceso/foto.jpg"); FileInputStream streamLectura = new FileInputStream(ruta); BufferedInputStream memoriaAux = new BufferedInputStream(streamLectura); int size_buffer = memoriaAux.available(); //Almacena el numero de bytes int bytes_archivo[] = new int[size_buffer]; //Almacena los bytes leidos for(int i=0;i
@pildorasinformaticas8 жыл бұрын
+Fermin Gomez No tengo tiempo de probarlo (ya me gustaría) pero parece correcto. Un saludo!!
@luisantonio22735 жыл бұрын
Solo te falto cerrar el buffer
@nico884774 жыл бұрын
hola, quiero abrir un archivo .bytes de un juego de movil que tengo, ya que es una imagen pero mi movil dice que no puede abrir archivos de ese tipo (.bytes), y ya he intentado cambiar la extension del archivo (de .bytes a .jpg) pero tampoco funciona, alguien me podria ayudar porfavor?!
@juandebenedetti28844 жыл бұрын
Yo lo hice usando ArrayList en vez del array convencional: public static void leer() { int c = 0, entrada_byte = 0; ArrayList arreglo_bytes = new ArrayList(); try { FileInputStream entrada = new FileInputStream("imagen"); while ((entrada_byte = entrada.read()) != -1) { arreglo_bytes.add(entrada_byte); System.out.println(arreglo_bytes.get(c)); c++; } System.out.println("Cantidad de bytes: " + c + " = " + c / 1024 + " KB"); entrada.close(); } catch (IOException e) { System.err.println("Error de E/S: " + e); } }
@ZapiAstur7 жыл бұрын
A ver si el compañero pildoras u otro me puede echar un cable, tengo un while y dentro otro while con un if, me hace el primer while, me salta al siguiente while, me comprueba el if y una vez que termina el segundo while no repite el primer while Para explicarlo mejor, tengo un while para que pida por teclado un caracter (buscar persona? (s/n)), el segundo while me lee el fichero mientras no sea null el contenido, y el if me compara el contenido. El codigo concreto seria este: FileInputStream fis; ObjectInputStream fentrada; Persona persona; String nombre; //persona = new Persona(); Scanner teclado = new Scanner(System.in); char continuar = 's'; try { fis = new FileInputStream("objetos.dat"); fentrada = new ObjectInputStream(fis); try { System.out.println("Buscar persona? (s/n)"); while (((continuar = (char) System.in.read()) != 'n') && ((continuar = (char) System.in.read()) != 'N')) { int contador = 0; System.out.println("Nombre que quieres comprobar: "); nombre = teclado.nextLine(); while ((persona = (Persona) fentrada.readObject()) != null) { if (persona.getNombre().equals(nombre)) { System.out.println(persona.toString()); //visualizo el objeto contador++; } } //se salta desde este paso hasta el ultimo catch System.out.println("Numero de veces que " + nombre + " aparece " + contador); System.out.println("Buscar persona? (s/n)"); } fis.close(); } catch (ClassNotFoundException ex) { System.out.println("Clase no encontrada"); } } catch (FileNotFoundException ex) { System.out.println("Fichero no encontrado"); } catch (IOException ex) { System.out.println("No hay más objetos"); }
@Whoami-w2e4 жыл бұрын
a mi no me imprimió ni siquiera un numero..les ha pasado algo similar?
@taniaosuna84193 жыл бұрын
Tienes que ver que tipo de archivo es, pdf, jpeg etc
@odditymusicarg2 жыл бұрын
a mi me paso lo mismo, ni uno solo, el código esta igual al del profe y no puedo encontrar la falla...
@geovannybadilla76532 жыл бұрын
@@odditymusicarg : Oddity revisa mi código con el tulló.. saludos
@geovannybadilla76532 жыл бұрын
import java.io.*; public class Lectura_Escritura { public static void main(String[] args) { int contador = 0; int datos_entrada[] = new int[74130]; try { FileInputStream archivo_lectura = new FileInputStream("C:/Users/Users/Pictures/?????.jpg"); boolean final_ar = false; while(!final_ar) { int byte_entrada = archivo_lectura.read(); if(byte_entrada != -1) { datos_entrada[contador] = byte_entrada; } else { final_ar = true; } System.out.println(datos_entrada[contador]); contador ++; } archivo_lectura.close(); } catch(IOException e) { } System.out.println(contador); } }
@geovannybadilla76532 жыл бұрын
jijijiji solo pon tu dirección del archivo jpg
@db17db114 жыл бұрын
Si declaramos final_ar cómo false, al negarlo es true. No comprendo porque afirmas ser lo contrario.
@kobysonpol60804 жыл бұрын
Hola Daniel, en la condición del while se evalúa lo contrario por el comodín ! (negación), espero haber ayudado
@db17db114 жыл бұрын
@@kobysonpol6080 eso había dicho. Inicias cómo TRUE pero al negarlo se torna en FALSE.
@taniaosuna84193 жыл бұрын
@@db17db11 No es lo contrario de como inicializas, independientemente de como lo inicies, si hay un "!" es falso.
@db17db112 жыл бұрын
@@taniaosuna8419 tenía entendido que era lo contrario y que si iniciabas como false, al negarlo se volvía true. Entendido, muchas muchas gracias !!!!
@rafaelperez70293 жыл бұрын
Otra forma de hacer ese código(la primera parte) package com.manejoficheros; import java.io.FileInputStream; import java.io.IOException; public class Archivo { public static void main(String[] args) { try { FileInputStream archivo = new FileInputStream("C:\\Users\\Alber\\Pictures\\killua.jpg"); int lineas = archivo.read(); while (lineas != -1) { System.out.println(lineas); lineas = archivo.read(); } archivo.close(); } catch (IOException e) { e.printStackTrace(); } }
@architect86757 жыл бұрын
package axiomatic; import java.io.FileInputStream; import java.io.IOException; public class Main { public static void main ( String ArgF [ ] ) throws IOException { //This right here (below), is a buffer type InputStream that accepts any //kind of objects that extends from InputStream Class FileInputStream myFile = new FileInputStream ("D:/AnyLocationInYourDisck/src/testpackage/FluxDiagram.jpg"); BufferedInputStream myBuffer = new BufferedInputStream( myFile ); boolean l = false; int c = 0; int dataArray; while (!l) { dataArray = myBuffer.read(); if(dataArray != -1) { System.out.println(dataArray); c++; } else { l = true; System.out.println(c);} } } } Espero les ayude, les otra forma, muy similar a la del video, de hacer el código.