Beruflich Dokumente
Kultur Dokumente
Arquivos Outro dispositivo de entrada e sada de vital importncia disco manipulado atravs do conceito de arquivo. Um arquivo uma abstrao utilizada para uniformizar a interao entre o ambiente de execuo e os dispositivos externos. A interao de um programa com um dispositivo atravs de arquivos passa por trs etapas: abertura ou criao de um arquivo transferncia de dados fechamento do arquivo Em java a classe File permite representar arquivos neste nvel de abstrao.
Class File Usada para representar o sistema de arquivos. apenas uma abstrao - a existncia de um objeto File no significa a existncia de um arquivo ou diretrio. Contm mtodos para testar a existncia de arquivos, para definir permisses (nos S.O.s onde for aplicvel), para apagar arquivos, criar diretrios, listar o contedo de diretrios, etc.
H vrias formas diferentes de ler e escrever dados: seqencialmente ,aleatoriamente, como bytes, como caracteres, linha por linha, palavra por palavra, APIs Java para I/O oferecem objetos que abstraem fontes e destinos (ns), fluxos de bytes e caracteres Dois grupos: Entrada e Sada de bytes: InputStream e OutputStream; Entrada e Sada de caracteres (chars): Reader e Writer.
Class FileInputStream, FileOutputStream, FileReader, FileWriter Os arquivos so abertos criando-se objetos destas classes de fluxo que herdam de InputStream, OutputStream, Reader, Writer como pode ser visto na figura. Classes abstratas
InputStream OutputStream Reader Writer
FileInputStream
FileOuputStream
FileReader
FileWriter
Classes Concretas
Classes FileInputStream, FileOutputStream, FileReader, FileWriter As funcionalidades de transferncia seqencial de dados a partir de, ou para, um arquivo no suportada pela classe File.
FileInputStream FileOutputStream FileReader FileWriter para entrada baseada em bytes de um arquivo para sada baseada em bytes de um arquivo para entrada baseada em caracteres de um arquivo para sada baseada em caracteres de um arquivo
As classes acima oferecem pelo menos um construtor que recebe como argumento um objeto da classe File e implementam os mtodos bsicos de transferncia de dados. InputStreamReader um filtro que converte bytes em chars.
c:\tmp\lixo.txt c:\tmp\subdir
File arquivo = new File("c:\\listaAlunos.txt"); FileInputStream in = new FileInputStream(arquivo); InputStreamReader conversor = new InputStreamReader(in); BufferedReader bf = new BufferedReader(conversor); boolean continua=true; String linha; while(continua){ linha = bf.readLine(); if (linha==null){ continua=false; }else{ System.out.println(linha); } } bf.close(); in.close();
Exemplo: Escrita seqencial de Arquivo FileReader e Leitura seqencial de Arquivo - FileWriter A maneira mais eficiente de ler um arquivo de texto usar FileReader com um BufferedReader. Para gravar, use um FileWriter com um PrintWriter Exemplo: Leitura seqencial de Arquivo - FileReader
FileReader f = new FileReader("c:\\arq.txt");
BufferedReader in =new BufferedReader(f); String linha =in.readLine(); while(linha !=null ){ System.out.println(linha); Mostra na tela linha por linha linha =in.readLine(); do arquivo arq.txt } in.close();
Class RandomAccessFile Construindo uma instncia do RandomAccessFile, voc pode procurar por qualquer posio desejada dentro de um arquivo, e ento ler ou escrever um montante de dados desejados. Esta classe oferece acesso aleatrio atravs do uso de um ponteiro. Construindo uma instncia do RandomAccessFile no modo 'r', se o arquivo no existir dispara uma exceo "FileNotFoundException". Construindo uma instncia do RandomAccessFile no modo 'rw', se o arquivo no existir um arquivo de tamanho zero criado. Construindo uma instncia do RandomAccessFile, voc pode procurar por qualquer posio desejada dentro de um arquivo, e ento ler ou escrever um montante desejado de dados.
Serializao de objetos interface Serializable Class ObjectOutputStream e ObjectInputStream Java permite a gravao direta de objetos em disco ou seu envio atravs da rede. Neste caso o objeto deve declarar implementar java.io.Serializable. Um objeto que implementa a interface Serializable poder ser gravado em qualquer stream usando o mtodo writeObject() de ObjectOutputStream e poder ser recuperado de qualquer stream usando o mtodo readObject() de ObjectInputStream.