Manipulação de Arquivos
|
|
|
- Felícia Monsanto Ferretti
- 9 Há anos
- Visualizações:
Transcrição
1 Manipulação de Arquivos SCC Programação Orientada a Objetos Prof. Fernando V. Paulovich [email protected] Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) 18 de novembro de 2010
2 Conceitos Básicos Sumário 1 Conceitos Básicos 2 Leitura/Gravação de Texto 3 Leitura/Gravação Streamming 4 Leitura/Gravação Objetos
3 Conceitos Básicos Sumário 1 Conceitos Básicos 2 Leitura/Gravação de Texto 3 Leitura/Gravação Streamming 4 Leitura/Gravação Objetos
4 Conceitos Básicos Introdução Java oferece várias classes para escrita e leitura de arquivos A seguir vamos ver algumas delas
5 Conceitos Básicos Tipos de Arquivos Os arquivos podem ser classicados em arquivos de texto ou arquivos binários Arquivos de texto: são compostos por uma série de caracteres ASCII agrupados em uma ou mais linhas. São compreendidos pelos seres humanos Arquivos binários: composto por uma série de bytes representados por caracteres não compreendidos pelo ser humano. São menores que os arquivos de texto. Ex.: imagens, vídeo, áudio, etc
6 Conceitos Básicos Manipulação de Arquivos Pacote java.io possui as classes para a manipulação de arquivos Essas classes são divididas em duas hierarquias de acordo com o tipo de arquivos que manipulam FileInputStream/FileOutputStream (arquivos binários) FileReader/FileWriter (arquivos de texto) Os arquivos e diretórios podem ser representados através da classe File
7 Conceitos Básicos Classe File 1 public list(); //retorna lista de arquivos contidos no diretório 2 public boolean isfile(); //retorna se é um arquivo 3 public boolean isdirectory(); //retorna se é um diretório 4 public boolean delete(); //tenta apagar o diretório ou arquivo 5 public long length(); //retorna o tamanho do arquivo em bytes 6 public boolean mkdir(); //cria um diretório com o nome do arquivo 7 public String getabsolutepath(); //retorna o caminho absoluto 8 public String getpath(); //retorna o caminho 9 public String getname(); //retorno o nome do arquivo 10...
8 Conceitos Básicos Classe File 1 File dir = new File("dir"); 2 boolean res = dir.mkdir(); //cria diretório 3 4 if (res dir.exists()) { //verica se criou ou se já existe 5 File subdir = new File(dir, "subdir"); 6 subdir.mkdir(); //cria subdiretório 7 8 File arq = new File(dir, "arquivo.txt"); 9 arq.createnewfile(); //cria um arquivo vazio File[] arqs = dir.listfiles(); //retorna a lista de arquivos 12 for (File f : arqs) { 13 System.out.println(f); 14 } //apagando o que foi criado 17 for (File f : arqs) { 18 f.delete(); 19 } 20 dir.delete(); //diretório tem que estar vazio 21 }
9 Leitura/Gravação de Texto Sumário 1 Conceitos Básicos 2 Leitura/Gravação de Texto 3 Leitura/Gravação Streamming 4 Leitura/Gravação Objetos
10 Leitura/Gravação de Texto Classe FileReader Utilizada para escrita em arquivos de texto Construtores public FileReader(String name) public FileReader(File le) Usa o método read() para ler um caracter por vez
11 Leitura/Gravação de Texto Classe FileReader 1 FileReader reader = new FileReader(new File("Main.java")); 2 3 int c; 4 while((c = reader.read())!= -1) { 5 System.out.print((char)c); 6 } 7 8 reader.close();
12 Leitura/Gravação de Texto Classe BueredReader Para acelerar a leitura é usada a classe BueredReader
13 Leitura/Gravação de Texto Classe BueredReader Para acelerar a leitura é usada a classe BueredReader 1 FileReader reader = new FileReader(new File("Main.java")); 2 BufferedReader breader = new BufferedReader(reader); 3 4 String linha = null; 5 while ((linha = breader.readline())!= null) { 6 System.out.println(linha); 7 } 8 9 breader.close(); 10 reader.close();
14 Leitura/Gravação de Texto Classe StringTokenizer Para pegar palavras individuais de uma linha é possível usar a classe StringTokenizer O delimitador das palavras é informado no construtor da classe StringTokenizer 1 FileReader reader = new FileReader(new File("Main.java")); 2 BufferedReader breader = new BufferedReader(reader); 3 4 String linha = null; 5 while ((linha = breader.readline())!= null) { 6 //O primeiro argumento é a string e o segundo é o delimitador 7 StringTokenizer st = new StringTokenizer(linha, " "); 8 9 while(st.hasmoretokens()) { 10 System.out.print(st.nextToken()); 11 } System.out.println(); 14 } breader.close(); 17 reader.close();
15 Leitura/Gravação de Texto Classe FileWriter Utilizada para escrita em arquivos de texto Construtores public FileWriter(String name) public FileWriter(String name, boolean append) public FileWriter(File le) public FileWriter(File le, boolean append) Usa o método write() para escrever um caractere por vez ou uma string por vez
16 Leitura/Gravação de Texto Classe FileWriter 1 FileWriter writer = new FileWriter(new File("teste.txt")); 2 3 char c; 4 while ((c = (char) System.in.read())!= '\n') { 5 writer.write(c); 6 } 7 8 writer.close(); //nunca esquecer de fechar o arquivo
17 Leitura/Gravação de Texto Classe BueredWriter Para agilizar a escrita é utilizada a classe BueredWriter 1 FileWriter writer = new FileWriter(new File("teste.txt")); 2 BufferedWriter bwriter = new BufferedWriter(writer); 3 4 bwriter.write("escrever 1a linha\r\n"); 5 bwriter.write("escrever 2a linha\r\n"); 6 7 bwriter.flush(); //descarrego o buer 8 9 bwriter.write("escrever 3a linha\r\n"); 10 bwriter.write("escrever 4a linha\r\n"); bwriter.close(); //nunca esquecer de fechar o arquivo 13 writer.close(); //nunca esquecer de fechar o arquivo
18 Leitura/Gravação Streamming Sumário 1 Conceitos Básicos 2 Leitura/Gravação de Texto 3 Leitura/Gravação Streamming 4 Leitura/Gravação Objetos
19 Leitura/Gravação Streamming Classe FileOutputStream Utilizada para escrita em arquivos binários Construtores public FileOutputStream(String name) public FileOutputStream(String name, boolean append) public FileOutputStream(File le) public FileOutputStream(File le, boolean append)
20 Leitura/Gravação Streamming Classe FileOutputStream 1 FileOutputStream fos = new FileOutputStream(new File("teste.bin")); 2 3 byte[] stream = new byte[]{'l','i','x','o'}; 4 fos.write(stream); //escreve vetor de bytes 5 6 fos.close();
21 Leitura/Gravação Streamming Classe FileInputStream Utilizada para leitura de arquivos binários Construtores public FileInputStream(String name) public FileInputStream(File le)
22 Leitura/Gravação Streamming Classe FileInputStream 1 FileInputStream fis = new FileInputStream(new File("teste.bin")); 2 3 byte[] stream = new byte[100]; 4 int tam = fis.read(stream); //retorna quantos bytes foram lidos 5 6 for(int i=0; i < tam; i++) { 7 System.out.print((char)stream[i]); 8 } 9 10 fis.close();
23 Leitura/Gravação Streamming Classe RandomAccessFile Classe que permite a leitura e escrita em um arquivo com acesso randômico Possui um le pointer que indica a posição atual para acessar o arquivo O le pointer pode ser obtido através do método getfilepointer() e alterado através do método seek()
24 Leitura/Gravação Streamming Classe RandomAccessFile 1 //Último parâmetro é o modo de abertura "r", "w", "rw", etc. 2 RandomAccessFile r = new RandomAccessFile(new File("teste.bin"), "r"); 3 4 int posini = 2; //posição inicial de leitura 5 r.seek(posini); //posiciona o ponteiro de leitura 6 7 //Retorna o número de bytes no arquivo 8 for (int i = 0; i < r.length() - posini; i++) { 9 char c = (char) r.readbyte(); 10 System.out.print(c); 11 } r.close();
25 Leitura/Gravação Objetos Sumário 1 Conceitos Básicos 2 Leitura/Gravação de Texto 3 Leitura/Gravação Streamming 4 Leitura/Gravação Objetos
26 Leitura/Gravação Objetos Leitura/Gravação Objetos Java permite a gravação direta de objetos em disco ou seu envio através da rede Para isto, o objeto deve declarar implementar java.io.serializable
27 Leitura/Gravação Objetos Leitura/Gravação Objetos Um objeto é gravado usando o método writeobject() de ObjectOutputStream Um objeto é lido usando o método readobject() de ObjectInputStream Se uma classe serializada for alterada, um objeto gravado (serializado) com a versão antiga da classe não pode ser lido para essa nova versão não é possível recuperar arquivos gravados com a versão antiga
28 Leitura/Gravação Objetos Leitura/Gravação Objetos Escrita de objetos 1 File arquivo = new File("arquivo.objs"); 2 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream( arquivo)); 3 Data d1 = new Data(1,1,2005); 4 Data d2 = new Data(1,1,2006); 5 out.writeobject(d1); 6 out.writeobject(d2); 7 out.close(); Leitura de objetos 1 File arquivo = new File("arquivo.objs"); 2 ObjectInputStream in = new ObjectInputStream(new FileInputStream( arquivo)); 3 Data d1 = (Data)in.readObject(); 4 Data d2 = (Data)in.readObject(); 5 in.close();
29 Leitura/Gravação Objetos Leitura/Gravação Arquivos Compactados Usando java.util.zip é possível armazenar dados de forma compactada, mantendo a estrutura dos arquivos e diretórios Maior eciência para E/S Usa-se a classe Zip, ZipEntry, ZipFile, ZipInputStream, etc.
30 Leitura/Gravação Objetos Leitura/Gravação Arquivos Compactados Leitura de arquivos compactados 1 ZipFile zip = new ZipFile("arquivo.zip"); 2 ZipEntry entry = zip.getentry("arquivo_interno.txt"); 3 BufferedReader in = new BufferedReader(new 4 InputStreamReader(zip.getInputStream(entry)); 5 6 //processa o arquivo para leitura 7 // zip.close(); Escrita de arquivos compactados 1 FileOutputStream dest = new FileOutputStream("arquivo.zip"); 2 ZipOutputStream zout = new ZipOutputStream(new 3 BufferedOutputStream(dest)); ZipEntry entry = new ZipEntry("arquivo_interno.txt"); 7 zout.putnextentry(entry); 8 9 String conteudo =...; 10 zout.write(conteudo.getbytes(), 0, conteudo.length()); 11 zout.flush(); 12 zout.finish(); 13 zout.close();
Motivação. Java First-Tier: Aplicações. Entrada & Saída. Stream de Entrada. Stream de Saída. Pacote java.io. Leitura e Escrita de Streams
Java First-Tier: Aplicações Entrada & Saída Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Motivação Uma aplicação normalmente precisa obter e/ou enviar informações a fontes/destinos
Módulo VIII Linguagem Java Entrada e Saída de Dados Arquivos
Especialização Avançada em Sistemas Distribuídos - EASD Módulo VIII Linguagem Java Entrada e Saída de Dados Arquivos Marcela Santana e Sérgio Gorender Universidade Federal da Bahia Arquivos Outro dispositivo
Como pôde verificar, a criação de um objecto do tipo File não cria o ficheiro em disco.
Folha 1-1 I/O em java (pakage java.io) A classe File A classe File (subclasse de Object) permite manipular os ficheiros e as directorias de um sistema de ficheiros. 1 - Substituindo o texto d:\\my_work\\
AULA TEÓRICA 4. Tema 5. Ficheiros. Ficheiro do tipo texto. Ficheiros de Objectos. Ø Classe File Ø Criação. Manipulação. Ø Classe StringTokenizer
Tema 5. Ficheiros AULA TEÓRICA 4 Ficheiro do tipo texto Ø Classe File Ø Criação. Manipulação. Ø Classe StringTokenizer Ficheiros de Objectos Ø Criação. Manipulação 1 Ficheiros A entrada de dados (leitura)
Reader e Writer para streams de caracteres (texto).
Folha 1-1 Recordando POO: Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo
Reader e Writer para streams de caracteres (texto).
Folha 1-1 Recordando POO: Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo
InputStream e OutputStream para ler/ escrever bytes e das classes abstractas Reader e Writer para ler /escrever caracteres (texto).
Input e Output 8 Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo físico
Streams e Ficheiros I/O
Streams e Ficheiros I/O Capítulo 9 Objectivos Familiarizar com o conceito I/O stream Entender a diferença entre ficheiros binários e de texto. Saber armazenar dados em ficheiros de texto. Saber ler dados
Existe uma quantidade de informação que pode ser armazenada para resolver o problema.
Arquivos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem sempre é conveniente. Problemas: A informação é perdida; As estruturas de dados são
Entrada e Saída Exercício. Linguagem Java. Adenilso da Silva Simão 01/09/05
01/09/05 Onde conseguir informações sobre os pacotes: http://java.sun.com/j2se/1.5.0/docs/api/ Tutorial http://java.sun.com/docs/books/tutorial/essential/ io/overview.html (II) Tanto a entrada quanto a
Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
10 Arquivos e fluxos. Desenvolvimento OO com Java. Vítor E. Silva Souza
Desenvolvimento OO com Java 10 Arquivos e fluxos Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Notas de POO: interfaces, excepções e input/output
Notas de POO: interfaces, excepções e input/output 2006/07 Conteúdo 1 Considerações gerais 1 2 Interfaces 1 2.1 Hierarquia das Interfaces........................... 2 2.2 Interfaces e Classes Abstractas........................
Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos
Aula: ARQUIVOS Introdução à Ciência da Computação I Simone Senger Souza ICMC/USP São Carlos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem
Aula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP
Aula de Arquivos Jesimar da Silva Arantes Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP Estagiário PAE: Jesimar da Silva Arantes Professor: Claudio Fabiano
P R O G R A M A. Stream Stream. Stream. Figura 1. Streams representam fluxos unidirecionais de dados, seja em entrada ou saída.
Universidade do Vale do Rio dos Sinos Laboratório 2 Prof. Gerson Cavalheiro Material de Apoio Aula 3 Manipulação de s Em Java, assim como em C e C++, a entrada/saida (input/output) é realizada através
Array de objectos Array de objectos Criação Exemplo:
Array de objectos Nos exemplos anteriores array armazenava dados de tipos primitivos. Array de objectos é um array cujos elementos são objectos ou, mais correctamente, referências para objectos. Característica
LP2 Laboratório de Programação 2 Ciência da Computação. Arquivos
Arquivos Um arquivo é uma abstração utilizada para uniformizar a interação entre o ambiente de execução e os dispositivos externos. A interação de um programa com um dispositivo através de arquivos passa
Projeto V (U900005) Ciências da Computação Projeto II (U900003) Engenharia da Computação Prof. Valdir Gil Pillat
2. Strings Projeto V (U900005) Ciências da Computação Veja alguns métodos utilizados na classe String retorno = x.equals(y); // Compara strings, retorna (True/False) retorno = x.equalsignorecase(y); //
Arquivos. Profa. Thienne Johnson EACH/USP
Arquivos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 14 Programadores utilizam arquivos para armazenar dados a longo prazo Dados armazenados em arquivos são
Lista de Comandos: Arquivo texto e Binário
Lista de Comandos: Arquivo texto e Declaração de arquivo do tipo binário program sequencial; type endereco = record end; rua : string[40]; numero : integer; CEP : real; cadastro = record end; nome : string[30];
21/05/2013. Informações Complexas. Arquivos de Texto e Arquivos Binários. Hierarquia de Dados. Armazena Informação. Classificação de Arquivos
DCC / ICEx / UFMG Informações Complexas e Arquivos são usados para gravar informações complexas Eduardo Figueiredo Arquivo é um grupo de registros relacionados http://www.dcc.ufmg.br/~figueiredo Armazena
Arquivos. Introdução à Programação SI1
Arquivos Introdução à Programação SI1 1 Conteúdo Arquivos Conceitos Operações Métodos Exercícios 2 Arquivos Entrada e saída são operações de comunicação de um programa com o mundo externo Essa comunicação
Computação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Aula 12 Arquivos Texto e Binário Prof: Luciano Barbosa Relembrando a Arquitetura Básica de um Computador Até agora, toda a informação armazenada por nossos programas estava na memória
LINGUAGEM C: ARQUIVOS
LINGUAGEM C: ARQUIVOS Prof. André Backes ARQUIVOS Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial; Acesso
LINGUAGEM C: ARQUIVOS
LINGUAGEM C: ARQUIVOS Prof. André Backes Arquivos 2 Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial;
Sumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Input / Output na linguagem java. Para isso usamos um dos construtores da classe java.io.file:
Input e Output 1 A classe File Input / Output na linguagem java Antes de podermos ler/escrever de/para um ficheiro temos que criar um objecto do tipo File e associar esse objecto ao ficheiro a que queremos
Introdução à Computação II AULA 08 BCC Noturno - EMA896115B
Introdução à Computação II AULA 08 BCC Noturno - EMA896115B Prof. Rafael Oliveira [email protected] Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) O ambiente de execução
Programação Orientada a Objetos com Java. Prof. Júlio Machado [email protected]
Programação Orientada a Objetos com Java Prof. Júlio Machado [email protected] TRATAMENTO DE EXCEÇÕES Tratamento de Exceções O tratamento de exceções de Java envolve vários conceitos importantes:
Decorator e Composite. Nazareno Andrade (baseado no material de Hyggo Almeida)
Decorator e Composite Nazareno Andrade (baseado no material de Hyggo Almeida) Decorator Vocês sabem como ler um arquivo texto em Java??? Pode-se usar a classe java.io.fileinputstream Vamos fazer um teste
ALOCAÇÃO DINÂMICA DE MEMÓRIA
INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador
Linguagem de Programação C. Arquivos
Arquivos Cristiano Lehrer Introdução Em C um arquivo é apenas um conjunto de bytes colocados uns após os outros de forma sequencial: Utilização de arquivos: Fonte de dados para o programa: Trata-se de
Aula 28: Arquivos de texto
Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização
Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros
Linguagem C. Armazenamento de Dados em Arquivos - Continuação
Linguagem C Armazenamento de Dados em Arquivos - Continuação Arquivos Binários Comandos para gravação e leitura de arquivos (revisão): FILE *arquivo; arquivo = fopen( nome, modo ); fwrite (&variavel, sizeof
CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:
CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta
Aplicação de Árvores: Código de Huffman
Aplicação de Árvores: Código de Huffman SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas
Ler e escrever bytes, caracteres e Strings de/para a entrada e saída padrão. Ler e escrever bytes, caracteres e Strings de/para arquivos
O pacote java.io Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos Ler e escrever
Alocação Dinâmica de Memória - Exercício
Alocação Dinâmica de Memória - Exercício Construa um programa que leia da entrada padrão o número de linhas e de colunas de uma matriz de floats, aloque espaço dinamicamente para esta e a inicialize, com
PROGRAMAÇÃO JAVA. Parte 3
PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos
Este capítulo apresenta as técnicas de manipulação de arquivos texto, binários e suas principais funções de I/O.
TRABALHANDO COM ARQUIVOS E DIRETÓRIOS Capítulo 9 Este capítulo apresenta as técnicas de manipulação de arquivos texto, binários e suas principais funções de I/O. ARQUIVOS TEXTO (File of Text) Os Arquivos
CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho
CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;
Linguagem C arquivos. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná
Linguagem C arquivos IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Vetores Matrizes Funções Recursão Registros Ponteiros
UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
