elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Re: Interactuar con otras aplicaciones en: 19 Agosto 2017, 00:05 am
Hacerlo puramente en java conlleva muchas limitaciones, ya que java digamos que no puede salir mucho de su entorno, si la aplicación con la que te quieres comunicar no sabe de que lo estas haciendo lo veo muy difícil particularmente si usas java. Lo que quieres hacer requiere de código nativo C/C++ JNA JNI


Empieza con JNA How to get a list of all visible windows


Muchas gracias! echaré un vistazo y volveré con mas dudas! jaja
2  Programación / Java / Interactuar con otras aplicaciones en: 18 Agosto 2017, 22:44 pm
Buen día gente, programo en java hace ya bastante tiempo, y ando con ganas de ampliar mi conocimiento. Me gustaría hacer aplicaciones que interactuen con otras aplicaciones, es decir, por ejemplo, una aplicación que al abrir www.facebook.com en google chrome me salga un cartelito que diga "abriste facebook" algo así simple para entender como es que puedo hacer que mi aplicación escuche eventos de otras aplicaciones (sin que sea una extensión de google ni nada)
Si me pueden dar algo de info de cualquier tipo lo agradecería mucho  ;-) ;-)
3  Programación / Java / Re: [Problema]Mejor manera de copiar archivos en: 30 Marzo 2017, 22:53 pm
Hola:

La primera opción es la más ineficiente. Siempre es más eficiente leer/escribir muchos bytes en disco de golpe que de uno en uno. Podrías hacerla más eficiente usando métodos de leer/escribir arrays de byte[] de tamaños más o menos grande. Las clases BufferedInputStream, BufferedReader, o BufferedOutputStream, BufferedWriter se encargan automáticamente de coger bloques de bytes enteros de disco en memoria y dártelos según los pidas.

Entre las otras opciones, no podría decirte cual es más eficiente, puesto que depende de cómo la hayan implementado por debajo (transfer, copy de windows, Files.copy), pero imagino que cualquiera de ellas vale, si nos fiamos de los que lo han implementado por debajo.

Otro detalle a tener en cuenta. Si son muuuuchos ficheros, windows es más eficiente haciendo un zip con todos ellos y transfiriendo ese único fichero que hacer la transferencia de los ficheros por separado. Puedes probarlo rápidamente sin hacer ningún programa, basta con hacer la prueba arrastrando los ficheros (bien el zip, bien el directorio que contenga la multitud de ficheros) en el explorador de windows y ver el resultado. Tendrías que ver lo que cuesta hacer el zip, pero según cuántos ficheros sean, en general compensa (nunca lo he hecho con 80TB, no sé que puede tardar un zip de eso o si lo aguanta siquiera, pero puedes probar a hacer varios zip más pequeños en vez de uno grande).

Saludos.

Esto me ayuda muchisimo! Lo aprecio mucho, voy a investigar y hacer algunas pruebas con lo que me dijiste.
Si me topo con alguna duda puede que te envie algun mesaje, espero que no te moleste.

Gracias!
4  Programación / Java / [Problema]Mejor manera de copiar archivos en: 30 Marzo 2017, 21:11 pm
Buen día, estoy realizando un programa para copiar grandes cantidades de archivos, alrededor de 80TB de un disco a otro y me he encontrado que me JAVA hay varios métodos para copiar archivos de un disco a otro, quería saber si me podían ayudar a saber cuál es el más eficiente en cuanto a tiempo.

Además, querías preguntarles maneras de optimizar el tiempo, estaba pensando que podría poner varios threads a copiar archivos, pero ¿Cómo defino cuantos es lo más eficiente?

Estos temas de eficiencia me traen liado, les agradecería mucho la ayuda!


Algunos de los métodos que encontré para copiar archivos son:

1-
Que creo que es la más normal:
FileInputStream in = new FileInputStream(inFile);
         FileOutputStream out = new FileOutputStream(outFile);

         int c;
         while( (c = in.read() ) != -1)
            out.write(c);

         in.close();
         out.close();

2-
FileChannel in = (new FileInputStream(s)).getChannel();
              FileChannel out = (new FileOutputStream(t)).getChannel();
              in.transferTo(0, s.length(), out);
              in.close();
              out.close();

3-
Podría ser llamando a ""Runtime.exec"  y copiandolo mediante la consola de windows (el programa se ejecutará el windows)

4-
  public static void copyFile_Java7(String origen, String destino) throws IOException {
        Path FROM = Paths.get(origen);
        Path TO = Paths.get(destino);
        //sobreescribir el fichero de destino, si existe, y copiar
        // los atributos, incluyendo los permisos rwx
        CopyOption[] options = new CopyOption[]{
          StandardCopyOption.REPLACE_EXISTING,
          StandardCopyOption.COPY_ATTRIBUTES
        };
        Files.copy(FROM, TO, options);
    }



Gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines