Manejo de Archivo en Java

in #spanish7 years ago (edited)


flujos excelente.jpg

La clase File

Java permite acceder a los archivos almacenados en el sistema de archivos local utilizando la clase File, que es una representación abstracta, es independiente del sistema de operación o del hardware en la cual la JVM se está ejecutando. Los objetos de la clase File son inmutables, en otras palabras, una vez que se crea un objeto File para representar una rata particular, no se puede modificar para apuntar a otra ruta, solo es posible asignarle una instancia diferente de la clase File.
Estos son algunos de los métodos de la clase File:
  • createNewFile()
  • delete()
  • exists()
  • isDirectory()
  • isFile()
  • list()
  • mkdir()
  • renameTo()
  • getName()
  • getPath()
  • length()

  • La clase File no se utiliza para leer o escribir datos, se utiliza para trabajar en un nivel superior, haciendo nuevos archivos vacíos, la búsqueda de archivo, borrar archivos y hacer directorios.

    La clase File extiende de la clase Object e implementa las siguientes interfaces:

  • Serializable.
  • Comparable.
  • Como File implementa Serializable, sus objetos pueden ser serializados y des-serializados, y como también implementa la interfaz Comparable se puede comparar 2 rutas de objetos usando comparaTo().

    Código Ejemplo
    File java.jpg

    La clase FileReader


    Esta clase es utilizada para leer ficheros de caracteres su read() son métodos de muy bajo nivel, lo que le permite leer caracteres, todo el flujo de caracteres o un número fijo de caracteres FileReaders suelen ser envuelto por los objetos de más alto nivel, como BufferReaders que mejoran el rendimiento y proporcionan los medios más convenientes para trabajar con los datos.

    La clase BufferReader

    Esta clase se utiliza como lector de la clase FileReader más eficiente y más fácil de usar. En comparación con FileReader BuferReader lee trozos relativamente largos (grandes) líneas, arreglos de datos de un archivo a la vez y mantiene estos datos en buffer. Cuando se solicite el carácter siguiente o línea de datos, es recuperado de la memoria, lo que minimiza el número de veces que de tiempo, el archivo se realiza operaciones de lectura. Además proporciona BufferReader más conveniente la aplicación de métodos tales como readLine() que le permite obtener la siguiente línea de carácter de un archivo.

    La clase FileWrite

    Es una clase que nos permite escribir datos de tipo caracteres en un archivo. Esta clase mantiene un buffer interno al escribir los datos, extiende a la clase OutputStreamWriter.
    Su método write() le permite escribir caracteres de una cadena en un archivo. FileWrite son envueltos por lo general de más alto nivel como escritor de objetos o BufferWriter, PrintWriter que proporcionan un mejor rendimiento y de nivel superior, más métodos flexibles para escribir los datos.

    Código Ejemplo de FileReader , BufferReader y FileWrite

    FileWrite.jpg

    La clase PrintWrite

    Esta clase se ha mejorado en java 5 con nueva creación de métodos y constructores como PrintWriter. Puede usar en lugares PrintWriter en la que previamente necesita un escritor para ser envuelto con FileWrite y/o bufferWrite. Nuevos métodos como format(), printrf() y append(), en resumen Printwriter es muy flexible y potente.

    La clase InputStreamReader

    En algunos casos, se podría necesitar usar los flujos de byte y convertirlos en caracteres antes de que puedan ser usados. La clase InputStreamReader, realiza esta operación de acuerdo con el esquema de codificación de caracteres especificado.
    La clase InputStreamReader extiende de la clase Reader, se puede usar InputStreamReader para tomar la entrada del usuario del dispositivo de entrada estándar (teclado). Esta se captura primero abriendo un InputStreamReader en System.in luego InputStreamReader lee datos convierte los datos en forma bytes a caracteres, BufferdReader envuelve a InputStreamReader y finalmente convierte la entrada del usuario en caracteres.

    Código Ejemplo

    InputStreamReader.jpg

    La clase OutputStreamWriter

    Esta clase actúa como un puente entre flujos de caracteres y los de bytes, esta clase extiende de Writer. Se usa para convertir caracteres en bytes, de acuerdo al esquema de codificación de caracteres especifico. El usuario puede especificar el esquema de codificación usada o a usar la codificación por defecto de la plataforma, que está definida por la propiedad de sistema file.encoding.

    Ahora veamos un ejemplo más completo de OutputStreamWriter y InputStreamReader con un archivo, así veremos el flujo de entrada y salida en dicho archivo.

    Importante:
    Para este ejemplo se asume que ya está creado el archivo archivoSteemit.txt

    Código Ejemplo

    manejo final archivo ejemplo salida entrada .jpg

    archivoSteemit.txt
    prueba de archivo.jpg

    La clase Scanner

    Por ultimo tenemos la clase Scanner una forma más sencilla de hacer la entrada de flujos por teclado, es una subclase de la clase Write, el string que se le quiere escribir a un flujo, primero se le asigna a un buffer, los contenidos de este buffer son usados para construir un string y este se usa finalmente para escribir en el flujo de caracteres.

    Esta clase está presente a partir de Java 5, la lectura se basa en un delimitador, que por defecto es uno o varios espacios en blanco.

    Código Ejemplo
    SCANNER.jpg

    Importante:
    Flujos de las clases se utilizan para leer y escribir bytes, y los lectores y escritores se utilizan para leer y escribir caracteres.
    Importante:
    Clases Stream se usan para leer y escribir bytes y Writers y Readers se usan para leer y escribir caracteres.

    Gracias a todos por leer…




    Sort:  

    Congratulations! This post has been upvoted from the communal account, @minnowsupport, by neliobatis from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

    If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
    Be sure to leave at least 50SP undelegated on your account.

    Coin Marketplace

    STEEM 0.18
    TRX 0.15
    JST 0.029
    BTC 61963.30
    ETH 2416.68
    USDT 1.00
    SBD 2.67