Skip to content

Commit a1b3afd

Browse files
authored
Merge pull request #77 from JessikaFujimura/Leitura-Processamento-Arq
#34 Exception Handling - Leitura e processamento de arquivo
2 parents bb621ae + 09b7c8a commit a1b3afd

File tree

4 files changed

+83
-3
lines changed

4 files changed

+83
-3
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Rosa
2+
Azul
3+
Verde
4+
Marrom
5+
Cinza
6+
Dourado
7+
Vermelho
8+
Branco
9+
Preto
10+
11+
Roxo
12+
Amarelo
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Leitura e processamento de arquivo
2+
3+
## Introdução
4+
Para leitura e processamento de arquivo em Java se pode utilizar as classes *FileReader* e a *BufferedReader*.
5+
6+
A classe *FileReader* é um subtipo da classe *Reader* utilizada para leitura de arquivos que contêm texto. Caso algo não ocorra bem, ela lança a exception *FileNotFoundException*.
7+
8+
A classe *BufferedReader* lê o arquivo de forma eficiente. Na construção dessa classe é preciso passar uma classe tipo Reader. A exceção lançada por essa classe é a *IOException*.
9+
10+
O *try with resources* é uma forma de capturar exceções garantindo que os recursos utilizados por algumas classes, como as classes FileReader e BufferedReader, sejam liberados após a execução do programa ou falha.
11+
12+
## Funcionamento do programa
13+
1. Dado que exista o arquivo Color.tx no diretório raiz do projeto
14+
2. Ao executar a classe main, o caminho do arquivo existente é montado
15+
3. Com esse caminho é feito a leitura do conteúdo do arquivo com o auxilio das classes FileReader e BufferedReader dentro de um try with resources
16+
4. Caso não seja lançadas nenhuma exceção do tipo IOException
17+
5. O conteúdo do arquivo é populado em uma Lista
18+
6. A Lista é ordernada por ordem alfabética e exibida no console.
19+
20+
## Links auxiliares
21+
22+
* [Class BufferedReader](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/BufferedReader.html)
23+
* [Class FileReader](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/FileReader.html)
24+
* [How to Read a File in Java](https://www.baeldung.com/reading-file-in-java)
25+
* [Class IOException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html)
26+
* [The try-with-resources Statement](https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import java.io.BufferedReader;
2+
import java.io.File;
3+
import java.io.FileNotFoundException;
4+
import java.io.FileReader;
5+
import java.io.IOException;
6+
import java.util.ArrayList;
7+
import java.util.Collections;
8+
import java.util.List;
9+
import java.util.Objects;
10+
11+
public class Main {
12+
13+
public static void main(String[] args){
14+
File file = new File("");
15+
String path = file.getAbsolutePath().concat("/Exception Handling/Leitura e Processamento de arquivo/Color.txt");
16+
17+
List<String> data = readFileReader(path);
18+
19+
Collections.sort(data);
20+
data.forEach(System.out::println);
21+
}
22+
23+
public static List<String> readFileReader(String pathAbs) {
24+
List<String> data = new ArrayList<>();
25+
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(pathAbs))){
26+
String line;
27+
while(Objects.nonNull(line = bufferedReader.readLine())) {
28+
data.add(line);
29+
}
30+
} catch (FileNotFoundException e){
31+
System.out.println("Arquivo não encontrado, verifique se ele existe!");
32+
} catch (IOException e){
33+
System.out.println(e.getMessage());
34+
}
35+
return data;
36+
}
37+
}

java-trainning.iml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@
33
<component name="NewModuleRootManager" inherit-compiler-output="true">
44
<exclude-output />
55
<content url="file://$MODULE_DIR$">
6-
<sourceFolder url="file://$MODULE_DIR$/Design Patterns/Strategy Pattern/com.strategy.java" isTestSource="false" />
7-
<sourceFolder url="file://$MODULE_DIR$/Design Patterns/Builder/com.builder.java" isTestSource="false" />
8-
<sourceFolder url="file://$MODULE_DIR$/Exception Handling/Encadeamento de Excecoes/com.encadeamento.excecoes.java" isTestSource="false" />
6+
<sourceFolder url="file://$MODULE_DIR$/Design Patterns/Strategy Pattern/com.strategy.java" isTestSource="false" />
7+
<sourceFolder url="file://$MODULE_DIR$/Design Patterns/Builder/com.builder.java" isTestSource="false" />
8+
<sourceFolder url="file://$MODULE_DIR$/Exception Handling/Encadeamento de Excecoes/com.encadeamento.excecoes.java" isTestSource="false" />
99
</content>
1010
<orderEntry type="inheritedJdk" />
1111
<orderEntry type="sourceFolder" forTests="false" />
12+
<orderEntry type="module" module-name="Bubble Sort Algorithm" />
13+
<orderEntry type="module" module-name="Design Patterns" />
14+
<orderEntry type="module" module-name="Encadeamento de Excecoes" />
15+
<orderEntry type="module" module-name="Custom Exception" />
16+
<orderEntry type="module" module-name="Leitura e Processamento de arquivo" />
1217
</component>
1318
</module>

0 commit comments

Comments
 (0)