Resumen Clase Anterior Ejercicio Clase 16 Archivos Ejemplo. ING1310 Introducción a la Computación. Archivos

Documentos relacionados
IIC1103 Introducción a la Programación. Ayudantía: Archivos

Tipos DataInputStream/DataOutputStream: L/E de datos de tipo simple y Cadenas (Strings) ObjectInputStream/ObjectOutputStream: para persistencia de obj

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

Capítulo 8: Archivos

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Flujos (streams) Programación. Licenciatura Lingüística y Nuevas Tecnologias Nadjet Bouayad-Agha

Strings en Java. String es una clase, no un tipo primitivo. Las variables de tipo String, en cualquier instante, pueden contener:

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Definición de Memoria

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Guía - Taller # 2 (JAVA)

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

Programación Orientada a Objetos. Tema 7: Persistencia

Ficheros de acceso aleatorio

Estructuras básicas de la programación en Java

Java para programadores

Objetivo de aprendizaje del tema

Uso de archivos en C++

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

Estructura de Datos: Archivos

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Manual de turbo pascal

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Entrada y Salida con Java

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Tema 2. El lenguaje de programación Java (Parte 1)

Lenguaje de programación con JAVA

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Repaso de las características más importantes de la programación Java y su adaptación a Android

Contenidos. Archivos en C++ Archivos en C++ Introducción

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Práctica 4: Herencia. Objetivos:

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Práctica 5: Servidor web concurrente en Java

Tema 4. Excepciones en Java

10. Algunas clases estándar de Java (I)

Información de la lectura en un programa.

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Práctica III: Streams, Readers y Writers

Ejercicios de evaluación de fundamentos de programación en Java

ALMACENAMIENTO PERSISTENTE DE DATOS

Curso Introducción JAVA Pág.: 1

Manejo de Excepciones Para capturar y manejar las excepciones Java proporciona la sentencia try, catch y finalty. Entre un try y un catch se escribe

Ejercicios de Programación Tema 7. Programación Orientada a Objetos

Desarrollar, usando Java, un cliente básico del protocolo web que permita enviar una solicitud HTTP a un servidor web y procesar la respuesta.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Elementos léxicos del lenguaje de programación Java

INDICE Prefacio 1. Fundamentos de Java 2. Introducción a los tipos de datos y operadores

Lección 2 Introducción al lenguaje C

FUNDAMENTOS DE PROGRAMACIÓN Curso: 2013/14 EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE. EJERCICIO 1 Cuestiones (1 punto)

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Introducción a Java LSUB. 30 de enero de 2013 GSYC

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

Computación II. Introducción a Visual Basic

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Algoritmos y Programación Clase 7

Introducción al lenguaje de programación java

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

Fundamentos de programación JAVA

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Aprendizaje activo: flujos

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

Sistemas Operativos. Curso 2016 Sistema de Archivos

Programación Orientada a Objetos. Java: Excepciones

Curso de Java Introducción a la Programación III

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

James Gosling, creador de Java

Programación Orientada a Objetos. Java: Excepciones

Introducción a la programación Metodología de programación, creación y desarrollo de programas en Java... 25

2. Estructura de un programa en Java

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Fundamentos de Programación Visual Basic

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

[CASI v.0310] Pág. 1

Programación en java. Estructuras algorítmicas

IIC1103 Introducción a la Programación. Capítulo 5: Strings

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

FUNDAMENTOS DE INFORMÁTICA

El lenguaje C. 1. Identificadores, constantes y variables

Por convención, se declaran primero las variables (atributos) miembro de la clase y luego las declaraciones e implementaciones de métodos.

Temario Iniciación a Java J2SE para web

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

Java Inicial (20 horas)

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Transcripción:

ING1310 Introducción a la Computación Archivos Carlos Reveco creveco@dcc.uchile.cl careveco@miuandes.cl Facultad de Ingeniería/Universidad de los Andes/Chile Rev : 232 C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 1 / 28

En esta clase 1 Resumen Clase Anterior 2 Ejercicio Clase 16 Enunciado Solución 3 Archivos Definición Streams Lectura Escritura Excepciones en Archivos 4 Ejemplo Enunciado Solución C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 2 / 28

Resumen Clase Anterior C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 3 / 28

Resumen Clase 16 String es una clase que representa una cadena de caracteres. Los caracteres se representan con la clase char Cada uno tiene una representación numérica definida por la tabla ASCII Como clase, String tiene métodos: charat obtener un caracter del String compareto compara lexicográficamente dos String equals/equalsignorecase revisa igualdad entre dos String length retorna número de caracteres substring obtiene un pedazo del String indexof busca un String dentro de otro C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 4 / 28

Ejercicio Clase 16 C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 5 / 28

Ejercicio Clase 16 Enunciado C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 6 / 28

Ejercicio String: Patentes Un sistema debe registrar las patentes de autos que tienen permitido estacionar en un cierto lugar. Dada la gran cantidad de patentes posibles, las ha organizado dentro de un arreglo que facilita su búsqueda. La idea es que la patente se divide en 2, dejando su parte númerica (2 dígitos) separada de sus letras (4). Luego, en un arreglo de 100 String se tienen las letras de las patentes que están registradas en el sistema, y cuya parte numérica corresponde con el índice en el arreglo. Por ejemplo, si tenemos: [0] --> " BCDF "... [45] --> " BCDFFGHJ " [46] --> " PNKK "... [99] --> " RGSDPNKKRTTY " Las siguientes patentes tendrían permiso de estacionar: BCDF00, BCDF45, FGHJ45, PNKK46, RGSD99, PNKK99, RTTY99. Ahora bien, las patentes DFFG45 o GSDP99 no tendrían permiso de estacionar. Implemente el método public boolean buscarpatente(string[] habilitadas, String patente) el cual retorna verdadero si la patente se encuentra habilitada, o falso en otro caso.

Ejercicio Clase 16 Solución C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 8 / 28

public boolean buscarpatente ( String [] habilitadas, String patente ) { int numero = Integer. parseint ( patente. substring (4)); String letras = patente. substring (0, 4); int posicion = habilitadas [ numero ]. indexof ( letras ); while ( posicion!= -1 && posicion %4!= 0) posicion = habilitadas [ numero ]. indexof ( letras, posicion ); } if( posicion == -1) return false ; else return true ; C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 9 / 28

Archivos C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 10 / 28

Archivos Definición C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 11 / 28

Motivación La gran cantidad de información que manejan los programas no siempre puede estar en memoria volatil. Muchas veces es necesaria mantenerla en Discos Duros. Para esto se guarda en un archivo. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 12 / 28

Definición Un Archivo es un elemento de almacenamiento (y de direccionamiento) de datos. Un archivo F vive en algún Directorio D. D puede estar anidado dentro de otro directorio D2, y así sucesivamente. Toda esta cadena de carpetas se encuentra alojada en alguna unidad de almacenamiento (por ejemplo, el disco duro, C:). A la secuencia de carpetas que contienen a un elemento (sea un archivo u otra carpeta) la llamaremos el Path (ruta) de ese elemento. Dentro de un archivo los datos pueden estar guardados principalmente de dos formas: Archivos ASCII (ejemplo.txt) Archivos binarios (ejemplo.exe,.doc) Nosotros trabajaremos solamente con archivos ASCII. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 13 / 28

Clase File Para trabajar con archivos en JAVA se debe importar el paquete java.io Sintáxis Java: Paquete import java.io.*;... La clase File representa un archivo. Su constructor recibe como parámetro un String que indica el nombre y ubicación del archivo. Ejemplo: Construcción File archivo = new File (" C:/ Mis Documentos / archivo. txt "); File archivo2 = new File (" archivo. txt "); En el primer caso busca el archivo indicado en la ruta proporcionada. En el segundo caso busca el archivo en la ruta actual. En NetBeans la ruta actual es la carpeta del proyecto. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 14 / 28

Métodos de File Algunos métodos de esta clase String getname() retorna el nombre del archivo. String getpath() retorna la ruta relativa del archivo. String getabsolutepath() retorna la ruta absoluta del archivo. boolean renameto(file archivo) cambia el nombre del archivo. boolean exists() indica si el archivo existe o no. boolean isfile() indica si el archivo es precisamente un archivo. boolean isdirectory() indica si el archivo es un directorio (carpeta). long length() indica el largo (bytes) del archivo. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 15 / 28

Archivos Streams C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 16 / 28

Definición La lectura de un archivo se hace viendo a este como un flujo continuo (stream) de bytes. Un stream es una clase que encapsula el acceso secuencial a un conjunto de datos. Se encarga de mantener un índice de la posición actual en la lectura del archivo. De esta manera, si le pido la siguiente ĺınea el stream sabe donde estaba parado, y cual es la siguiente (si existe). En Java encontramos un sin número de clases que hacen las veces de stream. Para archivos utilizaremos FileReader y FileWriter. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 17 / 28

Archivos Lectura C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 18 / 28

Clase Scanner Para la lectura de archivos lo más simple es utilizar la clase Scanner. Ahora en vez de pasarle como parámetro al constructor la consola, le pasamos un stream de lectura al archivo. Ejemplo: Lectura File archivo = new File (" archivo. txt "); if( archivo. exists ()) { Scanner scan = new Scanner ( new FileReader (" archivo. txt " ));... } Luego se utilizan los mismos métodos que vimos para leer desde la consola. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 19 / 28

Archivos Escritura C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 20 / 28

Clase FileWriter La clase FileWriter permite escribir datos en un archivo. El constructor recibe un String con el path del archivo. Posee el método void write(string) que escribe la información en el archivo. Este método no salta automáticamente de ĺınea. Ejemplo: Escritura FileWriter fw = new FileWriter (" archivo. txt "); Scanner scan = new Scanner ( System. in ); String texto = scan. next (); while (! texto. equals ("0")) { fw. write ( texto + "\n"); texto = scan. next (); } // Importante cerrar el stream fw. close (); C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 21 / 28

Archivos Excepciones en Archivos C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 22 / 28

Trabajo con Excepciones Dado que el trabajo con archivo es muy propenso a resultar en errores, debemos informar de esto en cada método que trabaje con archivos. Ejemplo: Excepciones public void leer ( String nombre ) throws IOException {... } Si un método llama a otro que trabaje con archivos, también ese método se debe marcar como que lanza excepciones de tipo IOException. De no hacerlo ocurrirá un error en nuestro programa, y no podremos ejecutarlo. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 23 / 28

Ejemplo C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 24 / 28

Ejemplo Enunciado C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 25 / 28

Ejercicio Archivos: Traspasar ĺıneas Haga una clase Intercambio que en su constructor reciba el nombre de un archivo. Debe tener un método que escriba todas las ĺıneas del archivo original que empiecen con un cierto caracter en un archivo de destino. El método debe recibir el nombre del archivo de destino y el caracter a buscar C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 26 / 28

Ejemplo Solución C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 27 / 28

public class Intercambio { private String ruta ; public Intercambio ( String ruta ) { this. ruta = ruta ; } public void seleccionarlineas ( char caracter, String rutadestino ) throws IOException { File archivo = new File ( ruta ); if( archivo. exists ()) { Scanner lector = new Scanner ( archivo ); FileWriter fw = new FileWriter ( rutadestino ); } } } while ( lector. hasnextline ()) { String linea = lector. nextline (); if( linea. charat (0) == caracter ) fw. write ( linea + "\n"); } fw. close (); C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 17 28 / 28