-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(file-io): 🎸 file improvements, translated
Refers: #9
- Loading branch information
1 parent
da0699d
commit b74123d
Showing
6 changed files
with
95 additions
and
97 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,166 +1,164 @@ | ||
:java-package: src/org/j6toj8/fileio | ||
:section-java-package: ../../../{java-package} | ||
|
||
=== Files com Streams | ||
=== Files with Streams | ||
|
||
.Objetivo | ||
.Objective | ||
-------------------------------------------------- | ||
Find a file by using the PathMatcher interface, and use Java SE 8 I/O improvements, including Files.find(), Files.walk(), and lines() methods | ||
- | ||
Encontrar um arquivo usando a interface PathMatcher, e usar as melhorias de I/O do Java SE 8, incluindo os métodos Files.find(), Files.walk(), and lines() | ||
-------------------------------------------------- | ||
|
||
Nestão seção serão apresentadas melhorias do Java 8 para encontrar e ler arquivos. São operações que já poderiam ser realizadas com outros métodos antes do Java 8. Porém, com essas melhorias, é possível realizar essas operações utilizando Streams. | ||
In this section Java 8 enhancements for finding and reading files will be presented. These are operations that could already be performed with other methods before Java 8. However, with these improvements, you can perform these operations using Streams. | ||
|
||
. É possível criar um _Stream_ para acessar todos os arquivos, diretórios e subdiretórios de um `Path`. | ||
. You can create a _Stream_ to access all files, directories and subdirectories of a `Path`. | ||
+ | ||
[source,java,indent=0] | ||
.{java-package}/fileimprovements/Improvements_Walk.java | ||
---- | ||
include::{section-java-package}/fileimprovements/Improvements_Walk.java[tag=code] | ||
---- | ||
+ | ||
.Saída no console | ||
.console output | ||
[source,console] | ||
---- | ||
Path: /home/rinaldo/arquivos | ||
Todos os arquivos e diretórios: | ||
/home/rinaldo/arquivos | ||
/home/rinaldo/arquivos/arquivo1.txt | ||
/home/rinaldo/arquivos/arquivo3.txt | ||
/home/rinaldo/arquivos/subpasta1 | ||
/home/rinaldo/arquivos/subpasta1/subpasta12 | ||
/home/rinaldo/arquivos/subpasta1/subpasta12/arquivo122.txt | ||
/home/rinaldo/arquivos/subpasta1/subpasta12/arquivo121.txt | ||
/home/rinaldo/arquivos/subpasta1/arquivo11.txt | ||
/home/rinaldo/arquivos/subpasta1/subpasta11 | ||
/home/rinaldo/arquivos/subpasta1/arquivo12.txt | ||
/home/rinaldo/arquivos/subpasta1/arquivo13.txt | ||
/home/rinaldo/arquivos/arquivo2.txt | ||
Os primeiro 5 arquivos e diretórios: | ||
/home/rinaldo/arquivos | ||
/home/rinaldo/arquivos/arquivo1.txt | ||
/home/rinaldo/arquivos/arquivo3.txt | ||
/home/rinaldo/arquivos/subpasta1 | ||
/home/rinaldo/arquivos/subpasta1/subpasta12 | ||
Path: /home/rinaldo/files | ||
All files and directories: | ||
/home/rinaldo/files | ||
/home/rinaldo/files/file1.txt | ||
/home/rinaldo/files/file3.txt | ||
/home/rinaldo/files/subfolder1 | ||
/home/rinaldo/files/subfolder1/subfolder12 | ||
/home/rinaldo/files/subfolder1/subfolder12/file122.txt | ||
/home/rinaldo/files/subfolder1/subfolder12/file121.txt | ||
/home/rinaldo/files/subfolder1/file11.txt | ||
/home/rinaldo/files/subfolder1/subfolder11 | ||
/home/rinaldo/files/subfolder1/file12.txt | ||
/home/rinaldo/files/subfolder1/file13.txt | ||
/home/rinaldo/files/file2.txt | ||
The first 5 files and directories: | ||
/home/rinaldo/files | ||
/home/rinaldo/files/file1.txt | ||
/home/rinaldo/files/file3.txt | ||
/home/rinaldo/files/subfolder1 | ||
/home/rinaldo/files/subfolder1/subfolder12 | ||
---- | ||
+ | ||
Perceba que a instância criada é realmente um `Stream<Path>`, de tal forma que é possível realizar as operações disponíveis em qualquer __Stream__, como o método `filter`. | ||
Note that the created instance is really a `Stream <Path>`, so that you can perform the operations available on any _Stream_, such as the `filter` method. | ||
|
||
. Existe uma versão do método `walk` para definir opções adicionais e limitar a profundidade do acesso aos subdiretórios. | ||
. There is a version of the `walk` method for setting additional options and limiting the depth of access to subdirectories. | ||
+ | ||
[source,java,indent=0] | ||
.{java-package}/fileimprovements/Improvements_WalkDepth.java | ||
---- | ||
include::{section-java-package}/fileimprovements/Improvements_WalkDepth.java[tag=code] | ||
---- | ||
+ | ||
.Saída no console | ||
.console output | ||
[source,console] | ||
---- | ||
Path: /home/rinaldo/arquivos | ||
Path: /home/rinaldo/files | ||
Arquivos e Links simbólicos até o segundo nível: | ||
/home/rinaldo/arquivos | ||
/home/rinaldo/arquivos/arquivo1.txt | ||
/home/rinaldo/arquivos/arquivo3.txt | ||
/home/rinaldo/arquivos/subpasta1 | ||
/home/rinaldo/arquivos/subpasta1/subpasta12 | ||
/home/rinaldo/arquivos/subpasta1/arquivo11.txt | ||
/home/rinaldo/arquivos/subpasta1/subpasta11 | ||
/home/rinaldo/arquivos/subpasta1/arquivo12.txt | ||
/home/rinaldo/arquivos/subpasta1/arquivo13.txt | ||
/home/rinaldo/arquivos/arquivo2.txt | ||
Symbolic files and links to the second level: | ||
/home/rinaldo/files | ||
/home/rinaldo/files/file1.txt | ||
/home/rinaldo/files/file3.txt | ||
/home/rinaldo/files/subfolder1 | ||
/home/rinaldo/files/subfolder1/subfolder12 | ||
/home/rinaldo/files/subfolder1/file11.txt | ||
/home/rinaldo/files/subfolder1/subfolder11 | ||
/home/rinaldo/files/subfolder1/file12.txt | ||
/home/rinaldo/files/subfolder1/file13.txt | ||
/home/rinaldo/files/file2.txt | ||
---- | ||
|
||
. É possível pesquisar por um arquivo utilizando o método `find` e filtrar por atributos. | ||
. You can search for a file using the `find` method and filter by attributes. | ||
+ | ||
[source,java,indent=0] | ||
.{java-package}/fileimprovements/Improvements_Find.java | ||
---- | ||
include::{section-java-package}/fileimprovements/Improvements_Find.java[tag=code] | ||
---- | ||
+ | ||
.Saída no console | ||
.console output | ||
[source,console] | ||
---- | ||
Path: /home/rinaldo/arquivos | ||
Path: /home/rinaldo/files | ||
Todos os arquivos, ignorando diretórios, até o segundo nível: | ||
/home/rinaldo/arquivos/arquivo1.txt | ||
/home/rinaldo/arquivos/arquivo3.txt | ||
/home/rinaldo/arquivos/subpasta1/arquivo11.txt | ||
/home/rinaldo/arquivos/subpasta1/arquivo12.txt | ||
/home/rinaldo/arquivos/subpasta1/arquivo13.txt | ||
/home/rinaldo/arquivos/arquivo2.txt | ||
All files, skipping directories, up to the second level: | ||
/home/rinaldo/files/file1.txt | ||
/home/rinaldo/files/file3.txt | ||
/home/rinaldo/files/subfolder1/file11.txt | ||
/home/rinaldo/files/subfolder1/file12.txt | ||
/home/rinaldo/files/subfolder1/file13.txt | ||
/home/rinaldo/files/file2.txt | ||
---- | ||
+ | ||
Perceba que ao utilizar o `find` a expressão lambda tem acesso ao `Path` e seus atributos, que é uma instância de `BasicFileAttributes`, permitindo uma maior flexibilidade na busca. | ||
Note that by using `find` the lambda expression has access to `Path` and its attributes, which is an instance of `BasicFileAttributes`, allowing for greater flexibility in searching. | ||
|
||
. É possível listar o conteúdo de um `Path` utilizando o método `list`. | ||
. You can list the contents of a `Path` using the `list` method. | ||
+ | ||
[source,java,indent=0] | ||
.{java-package}/fileimprovements/Improvements_List.java | ||
---- | ||
include::{section-java-package}/fileimprovements/Improvements_List.java[tag=code] | ||
---- | ||
+ | ||
.Saída no console | ||
.console output | ||
[source,console] | ||
---- | ||
Path: /home/rinaldo/arquivos | ||
Path: /home/rinaldo/files | ||
Listagem do diretório: | ||
/home/rinaldo/arquivos/arquivo1.txt | ||
/home/rinaldo/arquivos/arquivo3.txt | ||
/home/rinaldo/arquivos/subpasta1 | ||
/home/rinaldo/arquivos/arquivo2.txt | ||
Directory listing: | ||
/home/rinaldo/files/file1.txt | ||
/home/rinaldo/files/file3.txt | ||
/home/rinaldo/files/subfolder1 | ||
/home/rinaldo/files/file2.txt | ||
Listagem do diretório com filtro: | ||
/home/rinaldo/arquivos/arquivo1.txt | ||
/home/rinaldo/arquivos/arquivo3.txt | ||
/home/rinaldo/arquivos/arquivo2.txt | ||
Directory listing, files only: | ||
/home/rinaldo/files/file1.txt | ||
/home/rinaldo/files/file3.txt | ||
/home/rinaldo/files/file2.txt | ||
---- | ||
+ | ||
Perceba que o `list` não apresenta elementos dos subdiretórios. | ||
Note that `list` has no subdirectory elements. | ||
|
||
. É possível recuperar todas as linhas de um arquivo como um _Stream_ utilizando o método `lines`. | ||
. You can retrieve all lines of a file as a _Stream_ using the `lines` method. | ||
+ | ||
[source,java,indent=0] | ||
.{java-package}/fileimprovements/Improvements_Lines.java | ||
---- | ||
include::{section-java-package}/fileimprovements/Improvements_Lines.java[tag=code] | ||
---- | ||
+ | ||
.Saída no console | ||
.console output | ||
[source,console] | ||
---- | ||
Path: /home/rinaldo/arquivos/subpasta1/arquivo11.txt | ||
Path: /home/rinaldo/files/subfolder1/file11.txt | ||
Conteúdo do arquivo: | ||
File content: | ||
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
Conteúdo do arquivo: | ||
File contents greater than 2: | ||
3 | ||
4 | ||
5 | ||
---- | ||
|
||
|
||
.References | ||
**** | ||
* Presenting the New Stream Methods | ||
+ | ||
Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (p. 486). Wiley. Edição do Kindle. | ||
Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (p. 486). Wiley. Kindle Edition. | ||
* https://www.baeldung.com/java-list-directory-files[List Files in a Directory in Java.] | ||
* https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html[Class Files.] Java Plataform SE 7. | ||
**** | ||
**** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters