Вы находитесь на странице: 1из 8

Computao e Informtica

Faculdade de

Linguagem de Programao II
Aula 9: Pacote java.io
Prof. Ms. Daniel Arndt Alves http://www.progdan.pro.br

Tpicos da Aula
Organizao do pacote java.io Classe File Interface FilenameFilter Entrada InputStream FileInputStream DataInputStream
2

Tpicos da Aula

Sada OutputStream FileOutputStream DataOutputStream

Estrutura bsica do pacote java.io

Estrutura bsica do pacote java.io

CLASSE File
Classe que descreve os vrios atributos de um arquivo ou diretrio, tais como:
! modos de acesso ( leitura/escrita ) ! caminho absoluto ! caminho relativo ! tipo ( diretrio/arquivo )

Alm disto, permite criar de diretrios e renomear arquivos/diretrios.


6

Construtores e mtodos da classe File


CONSTRUTORES File(String caminho) throws NullPointException File(String caminho,String nome) File(String diretorio,String nome) construtor com nome separado do caminho construtor com diretrio e nome do arquivo construtor de diretrios/arquivos

Construtores e mtodos da classe File


MTODOS boolean canRead() boolean canWrite() boolean delete() boolean exists() boolean isAbsolute() boolean isDirectory() boolean isFile() boolean mKdir() boolean mKdirs() boolean renameTo(String novo) arquivo/diretrio pode ser lido pode-se gravar no arquivo/diretrio deleta arquivo/diretrio verifica se arquivo/diretrio existem verifica se caminho absoluto verifica se objeto diretrio verifica se objeto arquivo cira diretrio do objeto cria diretrios do caminho mudar nome do arquivo/diretrio para novo

Outros mtodos da classe File


String getAbsolutePath() String getName() String getParent() String getPath() String[] list() pega caminho absoluto do objeto pega nome do arquivo/diretrio/caminho pega diretrio-pai pega caminho relativo. lista todos os arquivos e subdiretrios de um determinado diretrio String [] list (FilenameFilter f) lista todos os arquivos e subdiretrios de um determinado diretrio, segundo um filtro f long lastModified() data da ltima modificao, no formato long

Interface FilenameFilter
Conjunto de prottipos de mtodos para filtrar consultas a respeito de arquivos e diretrios. O mtodo mais importante desta interface : !
public boolean accept(File dir,String nome_arq );

que permite aceitar, ou no, o arquivo de nome nome_arq, localizado em dir, para o resultado da filtragem.
10

Exemplo de File com FilenameFilter


import java.io.*; public class Filtrado extends File implements FilenameFilter{ String extensao; // Extenso de um arquivo

Filtrado(String extensao){ this.extensao=extensao; } public boolean accept(File dir,String nome){ // Retorna true se nome termina com uma determinada extenso return (nome.endsWith(extensao)); } }

11

Utilizao da classe Filtrado


class listagem{ public static void main(String args[]){ FilenameFilter arquivo=new Filtrado(.java); File diretorio=new File(c:\\java); String [] aceitos=diretorio.list(arquivo); arquivo com // lista todos os

// a extenso .java do diretrio // c:\java ... } }

12

Entrada
Na maioria das situaes, as operaes de entrada em Java so feitas com base nas seguintes classes:
! InputStream, classe abstrata que descreve as

caractersticas bsica de uma stream de entrada.


! FileInputStream, que permite a leitura somente

a nvel de bytes.
! DataInputStream, que permite a leitura a nvel

de tipos bsicos (inteiros, longs, floats, etc).


13

Mecanismo de acesso em camadas


A leitura de dados na classe DataInputStream feita atravs de uma camada formada sobre a camada da classe FileInputStream:

14

Classe InputStream
A classe abstrata InputStream possui, entre outros mtodos, os seguintes mtodos bsicos:
int available() throws IOException void reset() throws IOException //posiciona o ponteiro do arquivo no //no incio //devolve o nmero de bytes do arquivo

15

Classe FileInputStream
A abertura do arquivo d-se, efetivamente, na instanciao desta classe.
CONSTRUTORES FileInputStream(String) construtor com nome e diretorio no formato String

throws FileNotFoundException, IOException FileInputStream(File)

construtor com objeto File

throws FileNotFoundException, IOException FileInputStream(FileDescriptor) throws FileNotFoundException, IOException construtor com descritor de arquivo

16

Alguns mtodos da classe FileInputStream


int read() throws IOException int read(byte b[]) throws IOException int read(byte b[],int pos,int tam) throws IOException void close() leitura de vetor de bytes, armazenando a partir da posio pos, tam bytes fecha o arquivo leitura de um vetor de bytes (b) leitura de um byte do arquivo

17

Exemplo de leitura com FileInputStream


import java.io.*; class exemplo_leitura{ public static void main(String args[]){ FileInputStream arq; int tam; // Tamanho do arquivo try{ arq=new FileInputStream(codigo.exe); tam=arq.available(); // Recupera quantidade de bytes int b[]=new int[tam]; // Vetor para armazenar os bytes lidos for(int i=0;i<tam;i++) b[i]= arq.read(); // Leitura de bytes ... arq.close(); } catch(FileNotFoundException e){ System.out.println(e); } catch(IOException e){System.out.println(e);} } }

18

Classe DataInputStream
Como a abertura do arquivo j foi feita numa camada mais baixa, esta classe somente se preocupa em ler a quantidade de bytes necessrios para formar o tipo de retorno. Possui um nico construtor, cujo parmetro uma classe derivada de InputStream (geralmente FileInputStream):
DataInputStream(InputStream entrada)

! !

19

Alguns mtodos da classe DataInputStream


boolean readBoolean() throws IOException byte readByte() throws IOException char readChar() throws IOException double readDouble() throws IOException float readFloat() throws IOException long readLong() throws IOexception int readInt() throws IOException String readLine() throws IOException String readUFT() throws IOException leitura de booleanos leitura de bytes leitura de chars leitura de doubles leitura de floats leitura de longs leitura de inteiros leitura de uma linha do arquivo (UNICODE) leitura de uma linha do arquivo (ASCII)

20

Exemplo de leitura com DataInputStream


import java.io.*; class exemplo_leitura{ public static void main(String args[]){ File arq=new File(C:\\java,principal.class); InputStream entrada_baixa; DataInputStream entrada_alta; try{ entrada_baixa=new FileInputStream(arq); // Camada interna entrada_alta=new DataInputStream(entrada_baixa); // Camada externa System.out.println(entrada_alta.readInt()); // Leitura de um inteiro e impresso ... entrada_baixa.close(); } catch(FileNotFoundException e){ System.out.println(e); } catch(IOException e){System.out.println(e);} } }

21

Sada
Na maioria das situaes, as operaes de sada em Java so feitas com base nas seguintes classes:
! OutputStream, classe abstrata que descreve as

caractersticas bsica de uma stream de sada.


! FileOutputStream , que permite a escrita

somente a nvel de bytes.


! DataOutputStream, que permite a escrita a nvel

de tipos bsicos (inteiros, longs, floats, etc).


22

Mecanismo de escrita em camadas


A escrita de dados na classe DataOutputStream feita atravs de uma camada formada sobre a camada da classe FileOutputStream:

23

Classe OutputStream
A classe abstrata OutputStream possui, entre outros mtodos, o seguinte mtodo bsico:

void flush() throws IOException

descarrega o buffer de arquivo no arquivo.

24

Classe FileOutputStream
A abertura do arquivo para escrita d-se, efetivamente, na instanciao desta classe.
CONTRUTORES FileOutputStream(String) throws FileNotFoundException, IOException FileOutputStream(File) throws FileNotFoundException, IOException FileOutputStream(FileDescriptor) throws FileNotFoundException, IOException construtor com descritor de arquivo construtor com objeto File construtor com nome e diretrio no formato String

25

Alguns mtodos da classe FileOutputStream


void write(byte) throws IOException void write(byte b[]) throws IOException void write(byte b[],int pos,int tam) throws IOException void close() escrita de vetor de bytes, armazenando a partir da posio pos, tam bytes fecha o arquivo escrita de um vetor de bytes (b) escrita de um byte do arquivo

26

Classe DataOutputStream
Como a abertura do arquivo j foi feita numa camada mais baixa, esta classe somente se preocupa em gravar a quantidade de bytes formadores do tipo a ser gravado. Possui um nico construtor, cujo parmetro uma classe derivada de OutputStream (geralmente FileOutputStream):
DataOutputStream(OutputStream sada)

! !
27

Alguns mtodos da classe DataOutputStream


void writeBoolean(boolean) throws IOException void writeByte(byte) throws IOException void writeChar(char) throws IOException void writeDouble(double) throws IOException void writeFloat(float) throws IOException void writeLong(long) throws IOexception void writeInt(int) throws IOException void writeLine(String) throws IOException void writeUFT(String) throws IOException escrita de booleanos escrita de bytes escrita de chars escrita de doubles escrita de floats escrita de longs escrita de inteiros escrita de uma linha do arquivo (UNICODE) escrita de uma linha do arquivo (ASCII)

28

Exemplo de escrita com DataOutputStream


import java.io.*; class exemplo_gravao{ public static void main(String args[]){ File arq=new File(C:\\java,principal.class); File arq2=new File(C:\\java,principal2.class); InputStream entrada_baixa; DataInputStream entrada_alta; OutputStream saida_baixa; DataOutputStream saida_alta;

29

Exemplo de escrita com DataOutputStream


try{ entrada_baixa=new FileInputStream(arq); // Camada interna entrada_alta=new DataInputStream(entrada_baixa); // Camada externa saida_baixa=new FileOutputStream(arq2); saida_alta=new DataOutputStream(saida_baixa); try{ while(true) saida_alta.writeInt(entrada_alta.readInt()); } catch(EOFException e); entrada_baixa.close(); saida_baixa.close(); } catch(FileNotFoundException e){ System.out.println(e); } catch(IOException e){System.out.println(e);} } }

30

Computao e Informtica

Faculdade de

Obrigado
Prof. Ms. Daniel Arndt Alves http://www.progdan.pro.br

Вам также может понравиться