La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Problemas de Strings boolean palindrome(String x) Ej: palindrome(“reconocer”)=true boolean alfabetico(String x) Ej: alfabetico(“hola”)=true,

Presentaciones similares


Presentación del tema: "Problemas de Strings boolean palindrome(String x) Ej: palindrome(“reconocer”)=true boolean alfabetico(String x) Ej: alfabetico(“hola”)=true,"— Transcripción de la presentación:

1

2

3

4

5

6

7

8

9

10

11

12

13 Problemas de Strings boolean palindrome(String x)
Ej: palindrome(“reconocer”)=true boolean alfabetico(String x) Ej: alfabetico(“hola”)=true, alfabetico(“123”)=false boolean válido(String x,String y) Ej: válido(“123”,” ”)=true

14

15

16

17

18

19

20

21 Problemas de Archivos y Strings
Para cada pregunta de la prueba solemne se generó un archivo con la siguiente información: por cada línea viene el numero de matrícula de un alumno, un espacio y la nota en la pregunta. Los archivos se llaman S1P1.txt S2P2.txt y S3P3.txt. Se pide generar un archivo que contenga el numero de matrícula del alumno y las notas de cada pregunta y luego el promedio (separando cada información por un espacio). A) suponga que en los 3 archivos vienen las notas para todos los alumnos (si no entrego tiene un 1) y los números de matrícula están ordenados ascendentemente en todos los archivos. B) suponga se quiere tener el archivo resultado con los nombres de los alumnos en orden alfabético. Se tiene, además de los archivos mencionados (ordenados por numero de matrícula) un archivo en que viene por cada línea el número de matrícula, un espacio y el resto corresponde al nombre. Los datos vienen por orden alfabético de nombres C) suponga que para el caso A no vienen datos cuando el alumno no entregó la pregunta

22 Escribiendo archivos de texto en JAVA
Para abrir el archivo para escribir: PrintWriter x = new PrintWriter ( new FileWriter(filename)) Se pueden escribir líneas con los siguientes métodos: x.print(string) x.println(string) Si existía un archivo con ese nombre se borra y es reemplazado por el que genere el programa Es importante hacer al final x.close() para asegurarse que los datos que aún están en el buffer sean traspasados. Copyfile Replace

23 import java.io.*; import java.util.*; public class Replace { public static String replace(String x, String y, String z) { String s = ""; while(true) { int i = x.indexOf(y); if (i == -1) break; s = s + x.substring(0,i) + z; x = x.substring(i+y.length()); } s = s + x; return s;

24 public static void main(String[] args) throws IOException {
Scanner c = new Scanner(System.in); System.out.print("archivo de origen ? "); String origen = c.nextLine(); System.out.print("archivo de destino ? "); String destino = c.nextLine(); System.out.print("patron a buscar ? "); String original = c.nextLine(); System.out.print("reemplazo ? "); String thenew = c.nextLine(); BufferedReader in = new BufferedReader( new FileReader(origen)); PrintWriter out = new PrintWriter( new FileWriter(destino));

25 int i = 0; String line = null; while(true) { line = in.readLine(); if (line == null) break; String modified = replace(line, original, thenew); out.println(modified); i++; } out.close(); System.out.println("file "+origen+" copied into file "+destino+" ("+i+" lines)");

26 in = new BufferedReader( new FileReader(args[0]));
out = new PrintWriter( new FileWriter(args[1])); int i = 0; String line = null; while(true) { line = in.readLine(); if (line == null) break; out.println(line); i++; } out.close(); System.out.println("file "+args[0]+" copied into file "+args[1]+" ("+i+" lines)");

27 Archivos de bytes public FileInputStream(String name)
public int read() public int read(byte[] b) public int read(byte[] b, int off, int len) Se verifica el fin de archivo cuando retorna un -1 public FileOutputStream(String name) public FileOutputStream(String name, boolean append) public void write(int b) public void write(byte[] b) public void write(byte[] b, int off, int len)

28 import java.io.*; import java.net.*; public class CopyFileBytes { public static void main(String[] args) throws Exception { InputStreamReader inFile = new InputStreamReader( new FileInputStream(args[0])); FileOutputStream outFile = new FileOutputStream(args[1]); System.out.println("Copying "+args[0]+" into "+args[1] ); int b; byte ab[] = new byte[1024]; while ((b= inFile.read(ab,0,1024) ) != -1) { outFile.write(ab,0,b); } inFile.close(); outFile.close();

29 Archivos de acceso aleatorio
public RandomAccessFile(String name, String mode) mode “r”= read, “rw”= read/write El archivo se organiza como un arreglo de bytes el método seek(long i) posiciona el file pointer delante del i-esimo byte. Desde ahí se puede escribir o leer con distintos métodos, de acuerdo a lo que se necesite, por ej: readInt() writeInt(int i) readChar() writeChar(char c) readString() writeString(String s) etc....

30 Escritura de números en un archivo de acceso aleatorio
import java.io.*; import java.util.*; public class WriteRandom { public static void main(String[] args) throws Exception { RandomAccessFile numeros =new RandomAccessFile("Numeros","rw"); for(int i = 0; i < 100; i++) numeros.writeInt(i*2); numeros.close(); }

31 Lectura de números en un archivo de acceso aleatorio
import java.io.*; import java.util.*; public class ReadRandom { public static void main(String[] args) throws Exception { RandomAccessFile numeros =new RandomAccessFile("Numeros","rw"); Scanner C = new Scanner(System.in); while(true) { System.out.print("Numero de registro ? "); int n = C.nextInt(); if (n < 0) break; numeros.seek(n*4); int contenido = numeros.readInt(); System.out.println("Registro "+n+" Contenido "+contenido); }

32 Archivos de objetos Lectura
FileInputStream istream = new FileInputStream("t.tmp"); ObjectInputStream p = new ObjectInputStream(istream); int i = p.readInt(); String today = (String)p.readObject(); Date date = (Date)p.readObject(); istream.close();

33 Archivos de objetos: escritura
FileOutputStream ostream = new FileOutputStream("t.tmp"); ObjectOutputStream p = new ObjectOutputStream(ostream) p.writeInt(12345); p.writeObject("Today"); p.writeObject(new Date()); p.flush(); ostream.close(); EL OBJETO DEBE SER SERIALIZABLE !!!!! (ver clase MyDate)


Descargar ppt "Problemas de Strings boolean palindrome(String x) Ej: palindrome(“reconocer”)=true boolean alfabetico(String x) Ej: alfabetico(“hola”)=true,"

Presentaciones similares


Anuncios Google