<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivo para Java - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/category/java/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Tue, 17 Aug 2021 22:49:55 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
	<item>
		<title>Tipo enum em Java e classe de teste</title>
		<link>https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/</link>
					<comments>https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 17 Aug 2021 22:43:27 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17918</guid>

					<description><![CDATA[<p>Tipo enum em Java e classe de teste Como vimos em um artigo anterior sobre o tipo enum em Java, uma enumeração habilita uma variável a ser configurada com valores constantes pré-definidos. Ao atribuir valores a essa variável durante a execução do programa, somente são aceitos valores presentes da lista definida da enumeração. Aplicação: usamos tipos de enumeração sempre que precisamos representas um conjunto fixo de constantes, valores que são totalmente conhecidos na hora da compilação do programa. Exemplos comuns de aplicação de enums são a criação de variáveis para armazenar meses do ano, dias da semana, pontos cardeais, estações do ano, planetas do sistema solar, etc. Importante notar que, por serem constantes, os nomes dos valores dentro de um tipo enum são escritos sempre em letras maiúsculas. Neste artigo vamos criar uma enumeração em Java, e também uma classe que será usada para interagir com a enumeração, contendo um campo do tipo enum, um método construtor e um método de uso geral para exibição de uma mensagem ao usuário, dependendo do valor da enum que for solicitado no programa principal. Crie um novo projeto Java em um IDE, criando uma classe principal main(). Meu projeto recebeu o nome de [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/">Tipo enum em Java e classe de teste</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Tipo enum em Java e classe de teste</h2>
<p>Como vimos em um artigo anterior sobre o <a href="http://www.bosontreinamentos.com.br/java/como-trabalhar-com-o-tipo-enum-em-java-enumeracoes/">tipo enum em Java</a>, uma enumeração habilita uma variável a ser configurada com valores constantes pré-definidos. Ao atribuir valores a essa variável durante a execução do programa, somente são aceitos valores presentes da lista definida da enumeração.</p>
<p>Aplicação: usamos tipos de enumeração sempre que precisamos representas um conjunto fixo de constantes, valores que são totalmente conhecidos na hora da compilação do programa.</p>
<p>Exemplos comuns de aplicação de enums são a criação de variáveis para armazenar meses do ano, dias da semana, pontos cardeais, estações do ano, planetas do sistema solar, etc.</p>
<p>Importante notar que, por serem constantes, os nomes dos valores dentro de um tipo enum são escritos sempre em letras maiúsculas.</p>
<p>Neste artigo vamos criar uma enumeração em Java, e também uma classe que será usada para interagir com a enumeração, contendo um campo do tipo enum, um método construtor e um método de uso geral para exibição de uma mensagem ao usuário, dependendo do valor da enum que for solicitado no programa principal.</p>
<p>Crie um novo projeto Java em um IDE, criando uma classe principal <strong>main()</strong>. Meu projeto recebeu o nome de <em><strong>EnumsJava</strong></em>.</p>
<h3>Criar uma enum em Java</h3>
<p>Vamos criar primeiramente um tipo enum para armazenar os nomes dos planetas do Sistema Solar. Vamos chamar essa enum de <em><strong>EnumPlanetas</strong></em>. Para isso, crie um novo arquivo em seu IDE preferido e digite o código a seguir:</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>public enum EnumPlanetas {</strong>
<strong>    MERCÚRIO,</strong>
<strong>    VÊNUS,</strong>
<strong>    TERRA,</strong>
<strong>    MARTE,</strong>
<strong>    JÚPITER,</strong>
<strong>    SATURNO,</strong>
<strong>    URANO,</strong>
<strong>    NETUNO</strong>
<strong>}</strong></pre>
<h3>Testar a enum no programa principal</h3>
<p>Vamos testar a enum criada no programa principal usando um laço de repetição para iterar pelos seus itens constituintes, exibindo cada nome da enum na tela.</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>import java.util.Scanner;</strong>
<strong>public class EnumsJava {</strong>
<strong>  public static void main(String[] args) {</strong>
<span style="color: #339966;"><strong>    // listar os valores possíveis para a enumeração:</strong></span>
<strong>    for (EnumPlanetas p : EnumPlanetas.values()) {</strong>
<strong>      System.out.printf("%s%n", p);</strong>
<strong>    }</strong>
<strong>  }</strong>
<strong>}
</strong></pre>
<p>Devem ser exibidos na tela os nomes dos planetas, um por linha:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17921 size-full" title="Iteração por valores em uma enumeração Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-iterar-valores.jpg" alt="Iteração por valores em uma enumeração Java" width="397" height="317"></p>
<h3>Criar classe para manipulação da enum</h3>
<p>Agora vamos criar uma nova classe para trabalhar com a enumeração de planetas. Vamos batizar essa classe como <em><strong>ClasseTesteEnum</strong></em>. Crie um novo arquivo e digite o código a seguir.&nbsp;</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>public class ClasseTesteEnum {</strong>
<strong>  EnumPlanetas planeta;</strong>
<strong>  ClasseTesteEnum(String planeta) {</strong>
<strong>    this.planeta = EnumPlanetas.valueOf(planeta); <span style="color: #339966;">// converte string para valor de enum</span></strong>
<strong>  }</strong>
<strong>  public void viajarPlaneta() {</strong>
<strong>    switch(planeta) {</strong>
<strong>      case MERCÚRIO:</strong>
<strong>        System.out.println("Muito quente por lá");</strong>
<strong>        break;</strong>
<strong>      case TERRA:</strong>
<strong>        System.out.println("Já estamos aqui");</strong>
<strong>        break;</strong>
<strong>      case SATURNO:</strong>
<strong>        System.out.println("Belíssimos anéis!");</strong>
<strong>        break;</strong>
<strong>     case URANO:</strong>
<strong>        System.out.println("Muito longe");</strong>
<strong>        break;</strong>
<strong>     default:</strong>
<strong>        System.out.println("Passagens esgotadas!");</strong>
<strong>        break;</strong>
<strong>    }</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p>Note que não criamos casos para todos os planetas listados na enumeração &#8211; esses serão tratados pelo caso <em>default</em> da declaração<em> switch</em>.</p>
<p>Salve o arquivo. Vamos testar o programa logo em seguida.</p>
<h3>Testar a classe no programa principal</h3>
<p>Vamos testar a classe criada instanciando-a no programa principal, e criando assim um objeto que chamaremos de <em><strong>pl</strong></em>.</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>import java.util.Scanner;</strong>
<strong>public class EnumsJava {</strong>
<strong>  public static void main(String[] args) {</strong>
<strong>    Scanner entrada = new Scanner(System.in);</strong>
<strong>    String planeta;</strong>
<strong>    System.out.println("Para qual planeta deseja viajar?");</strong>
<strong>    planeta = entrada.next().toUpperCase(); <span style="color: #339966;">// converte para maiúsculas, pois os valores da enum são sempre maiúsculos</span></strong>
<strong>    entrada.close();</strong>
<strong><span style="color: #339966;">    // Criar o objeto pl</span>
    ClasseTesteEnum pl = new ClasseTesteEnum(planeta);</strong>
<strong>    pl.viajarPlaneta();</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p>Testando com o planeta Urano:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17922 size-full" title="Teste de tipo enum em Java com Urano" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Urano.jpg" alt="Teste de tipo enum em Java com Urano" width="464" height="160" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Urano.jpg 464w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Urano-420x145.jpg 420w" sizes="auto, (max-width: 464px) 100vw, 464px" /></p>
<p>Vamos testar agora com o planeta Marte:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17923 size-full" title="Teste de tipo enum em Java com Marte" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Marte.jpg" alt="Teste de tipo enum em Java com Marte" width="460" height="173" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Marte.jpg 460w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Marte-420x158.jpg 420w" sizes="auto, (max-width: 460px) 100vw, 460px" /></p>
<p>E, finalmente, um teste com o planeta-anão Ceres (este não existe na listagem da enumeração):</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17924" title="Teste de tipo enum em Java com Planeta-anão Ceres" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-1024x270.jpg" alt="Teste de tipo enum em Java com Planeta-anão Ceres" width="900" height="237" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-1024x270.jpg 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-420x111.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-768x202.jpg 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres.jpg 1063w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>A o tentar rodar o programa passando o valor Ceres (um planeta-anão do Sistema Solar), é retornado um erro, pois esse valor não pertence à enumeração, que somente aceita os valores constantes que foram definidos em sua declaração. A exceção lançada é <em><strong>java.lang.IllegalArgumentException: No enum constant enumsJava.EnumPlanetas.CERES.<br />
</strong></em>Neste caso, devemos tratar a exceção de alguma forma para que o erro não prejudique a execução do programa.</p>
<p>Agora aproveite e assista ao vídeo do canal Bóson Treinamentos sobre o assunto:</p>
<p><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/ScPe4eWFTQ4" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/">Tipo enum em Java e classe de teste</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o pacote AdoptOpenJDK no Linux Debian</title>
		<link>https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/</link>
					<comments>https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 30 Mar 2021 13:23:22 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17282</guid>

					<description><![CDATA[<p>Como instalar o pacote AdoptOpenJDK no Linux Debian Por conta de atualizações na política de licenciamento do Java pela Oracle, que incluem o fim de determinadas atualizações gratuitas, entre outras alterações, muitos tem buscado alternativas para o uso do Java em seus sistemas, seja usando uma máquina virtual Java, um ambiente de execução, ou ainda para desenvolvimento de software na linguagem. O AdoptOpenJDK é uma distribuição Java de código aberto, mantida por uma comunidade de desenvolvedores, que fornece binários pré-compilados da implementação de referência da plataforma Java a partir do OpenJDK, que por si é uma implementação livre e de código aberto da plataforma Java SE (Standard Edition). Com o AdoptOpenJDK, as atualizações do Java são disponibilizadas com rapidez e regularidade a todos que usem seus pacotes.&#160;Empresas que contribuem para esse projeto incluem a IBM, Microsoft e Azul, entre outras, o que ajuda a manter o padrão de qualidade do projeto em um patamar bastante elevado. O AdoptOpenJDK está disponível em diversas plataformas, como Windows, macOS e, claro, Linux, que será o objeto de nosso tutorial de hoje. Vou mostrar como instalar o AdoptOpenJDK no Linux Debian e seus derivados, como o Ubuntu, MX Linux e Linux Mint, entre outros. [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/">Como instalar o pacote AdoptOpenJDK no Linux Debian</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como instalar o pacote AdoptOpenJDK no Linux Debian</h2>
<p>Por conta de atualizações na política de licenciamento do Java pela Oracle, que incluem o fim de determinadas atualizações gratuitas, entre outras alterações, muitos tem buscado alternativas para o uso do Java em seus sistemas, seja usando uma máquina virtual Java, um ambiente de execução, ou ainda para desenvolvimento de software na linguagem.</p>
<p>O <strong>AdoptOpenJDK</strong> é uma distribuição Java de código aberto, mantida por uma comunidade de desenvolvedores, que fornece binários pré-compilados da implementação de referência da plataforma Java a partir do <strong>OpenJDK</strong>, que por si é uma implementação livre e de código aberto da plataforma Java SE (Standard Edition).</p>
<p>Com o AdoptOpenJDK, as atualizações do Java são disponibilizadas com rapidez e regularidade a todos que usem seus pacotes.&nbsp;Empresas que contribuem para esse projeto incluem a IBM, Microsoft e Azul, entre outras, o que ajuda a manter o padrão de qualidade do projeto em um patamar bastante elevado.</p>
<p>O AdoptOpenJDK está disponível em diversas plataformas, como Windows, macOS e, claro, Linux, que será o objeto de nosso tutorial de hoje.</p>
<p>Vou mostrar como instalar o AdoptOpenJDK no Linux Debian e seus derivados, como o Ubuntu, MX Linux e Linux Mint, entre outros.</p>
<p>O site oficial do projeto AdoptOpenJDK é o <a href="https://adoptopenjdk.net/" target="_blank" rel="noopener">https://adoptopenjdk.net/</a>.</p>
<p>Vamos aos procedimentos de instalação e configuração agora.</p>
<h3>Instalação do AdoptOpenJDK</h3>
<p>O primeiro passo é importar a chave GPG de criptografia. Abra o terminal e execute o comando a seguir:</p>
<pre><strong>$ wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -</strong></pre>
<p>Na sequência, adicione o repositório de pacotes do AdoptOpenJDK:</p>
<pre><strong>$ sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/</strong></pre>
<p>Atualizar a lista de pacotes dos repositórios no sistema:</p>
<pre><strong>$ sudo apt update</strong></pre>
<p>Finalmente, vamos instalar o AdoptOpenJDK no Linux:</p>
<pre><strong>$ sudo apt install adoptopenjdk-8-hotspot</strong></pre>
<p>Verifique no site do projeto as versões mais recentes do AdoptOpenJDK. Se preferir, você pode instalá-la simplesmente alterando o nome do pacote no comando anterior. Por exemplo, para a versão 11 você usa o pacote <strong>adopopenjdk-11-hotspot</strong>.</p>
<p>Após o término da instalação do pacote e suas dependências, podemos selecionar a alternativa Java a ser usada no sistema (qual JVM será usada), caso você tenha mais de uma JVM instalada (openJDK, Oracle JDK). Digite o número correspondente ao pacote desejado e pressione &lt;enter&gt;</p>
<pre><strong>$ sudo update-alternatives --config java</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17702" title="Escolher JVM para openJDK no linux Debian" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-1024x262.jpg" alt="Escolher JVM para openJDK no linux Debian" width="802" height="205" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-1024x262.jpg 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-420x107.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-768x196.jpg 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson.jpg 1521w" sizes="auto, (max-width: 802px) 100vw, 802px" /></p>
<p>No meu caso possuo mais JVMs instaladas, e o AdoptOpenJDK é a opção número 1 na lista. Anote o caminho do executável do Java mostrado (/usr/bin/java), pois ele será necessário na próxima etapa, que é a configuração da variável de ambiente.</p>
<p>Agora vamos configurar a variável de ambiente <strong>JAVA_HOME</strong> no sistema. Para tal, abra o arquivo <em>/etc/environment</em> em um editor de textos qualquer. Este arquivo é o local padrão para a configuração de variáveis de ambiente em sistema Linux. Vou usar o nano para editá-lo:</p>
<pre><strong>$ sudo nano /etc/environment</strong></pre>
<p>Adicionar a linha a seguir, substituindo o caminho indicado em itálico pelo caminho do binário mostrado na saída do comando anterior (não se esqueça de incluir as aspas):</p>
<pre><span style="color: #800080;"><strong>JAVA_HOME="<em>caminho_obtido_no_comando_anterior_até_bin</em>"</strong></span></pre>
<p>No meu caso ficou assim:</p>
<pre><span style="color: #800080;"><strong>JAVA_HOME="/usr/bin/"</strong></span></pre>
<p>Salve o arquivo e feche-o. Logo após, faça logoff e logon no sistema novamente, para recarregar o arquivo para todos os usuários e processos (não é necessário reiniciar o computador).</p>
<p>Após logar novamente, abra o terminal e verifique a variável de ambiente configurada com o comando a seguir:</p>
<pre><strong>$ echo $JAVA_HOME</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17703" title="AdoptOpenJDK instalado no sistema Linux" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debian-instalado-boson.jpg" alt="AdoptOpenJDK instalado no sistema Linux" width="452" height="90" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debian-instalado-boson.jpg 507w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debian-instalado-boson-420x84.jpg 420w" sizes="auto, (max-width: 452px) 100vw, 452px" /></p>
<p>Perfeito! JDK instalado e configurado com sucesso em seus sistema! Para testar, instale algum programa que necessite do Java para rodar, como por exemplo o Portugol Studio &#8211; e aproveite para estudar lógica de programação com ele!</p>
<p>Até!</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/">Como instalar o pacote AdoptOpenJDK no Linux Debian</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o OpenJDK 11 no Linux Debian 10</title>
		<link>https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/</link>
					<comments>https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 10 Dec 2020 13:07:20 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17275</guid>

					<description><![CDATA[<p>Como instalar o OpenJDK 11 no Linux Debian 10 Neste tutorial vamos mostrar como instalar a implementação Java OpenJDK no Debian Linux 10 e derivados, para desenvolvimento de aplicações e execução de software em Java e outras linguagens específicas. O que é JDK O Oracle JDK, abreviação de Java Development Kit (Kit de Desenvolvimento Java), é um conjunto de utilitários e bibliotecas que permitem criar e testar aplicações na plataforma Java e outras, como Scala. Além do JDK, outros dois componentes são empregados no desenvolvimento em Java: o JRE (Java Runtime Environment) e a JVM (Java Virtual Machine). Sendo assim, temos que a plataforma Java é composta de: JVM é o componente da plataforma Java que executa os programas JRE são os pacotes que criam o ambiente de execução Java (a JVM) e o JDK é o conjunto que permite aos desenvolvedores criar os programas que são executados pela JVM no JRE. O JDK foi desenvolvido inicialmente pela Sun Microsystem e e mantido atualmente pela Oracle Corporation e, portanto, é software proprietário, sendo distribuído sob licença comercial. O que é o OpenJDK O OpenJDK é uma implementação em software livre do JDK, na edição Standard (Java SE). Sendo assim, é [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/">Como instalar o OpenJDK 11 no Linux Debian 10</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como instalar o OpenJDK 11 no Linux Debian 10</h2>
<p>Neste tutorial vamos mostrar como instalar a implementação Java <a href="https://openjdk.java.net/" target="_blank" rel="noopener">OpenJDK</a> no Debian Linux 10 e derivados, para desenvolvimento de aplicações e execução de software em Java e outras linguagens específicas.</p>
<h3>O que é JDK</h3>
<p>O Oracle JDK, abreviação de <em><strong>Java Development Kit</strong></em> (Kit de Desenvolvimento Java), é um conjunto de utilitários e bibliotecas que permitem criar e testar aplicações na plataforma Java e outras, como Scala. Além do JDK, outros dois componentes são empregados no desenvolvimento em Java: o JRE (Java Runtime Environment) e a JVM (Java Virtual Machine).</p>
<p>Sendo assim, temos que a plataforma Java é composta de:</p>
<ul>
<li><strong>JVM</strong> é o componente da plataforma Java que executa os programas</li>
<li><strong>JRE</strong> são os pacotes que criam o ambiente de execução Java (a JVM)</li>
<li>e o <strong>JDK</strong> é o conjunto que permite aos desenvolvedores criar os programas que são executados pela JVM no JRE.</li>
</ul>
<p>O JDK foi desenvolvido inicialmente pela Sun Microsystem e e mantido atualmente pela Oracle Corporation e, portanto, é software proprietário, sendo distribuído sob licença comercial.</p>
<h3>O que é o OpenJDK</h3>
<p>O OpenJDK é uma implementação em software livre do JDK, na edição Standard (Java SE). Sendo assim, é distribuído sob licença GNU GPL e está disponível em inúmeras plataformas, como Linux, Unix, BSD, macOS e Windows.</p>
<p>A versão mais atual da implementação é a versão 11, e o site oficial do projeto OpenJDK é o&nbsp;<a href="https://openjdk.java.net/" target="_blank" rel="noopener">https://openjdk.java.net/</a></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17344" title="OpenJDK no Debian Linux" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK.png" alt="OpenJDK no Debian Linux" width="300" height="300" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK.png 512w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK-420x420.png 420w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<h3>Instalação do OpenJDK no Linux</h3>
<p>Iniciamos a instalação executando a atualização da lista de pacotes do sistema e rodando o gerenciador de pacotes APT para instalar o pacote <em><strong>default-jdk,</strong></em> como segue:</p>
<pre><strong>$ sudo apt update</strong>
<strong>$ sudo apt install default-jdk</strong></pre>
<p>Após instalar os pacotes necessários podemos verificar a instalação do OpenJDK com os comandos a seguir:</p>
<pre><strong>$ java --version</strong>
<strong>$ javac --version</strong></pre>
<p>O Java Runtime Environment está incluído no pacote JDK. Se for necessário apenas o ambiente de execução Java (JRE), instale somente o pacote JRE:</p>
<pre><strong>$ sudo apt install default-jre</strong></pre>
<h3>Como ajustar a variável de ambiente do Java</h3>
<p>Após instalar o OpenJDK em seu sistema é importante configurar a variável de ambiente <strong>$JAVA_HOME</strong>, para que o executável possa ser utilizado sem problemas a partir de qualquer diretório ou aplicação na máquina. Para tal, siga os passo abaixo:</p>
<p>Verificar caminho de instalação do Java</p>
<pre><strong>$ sudo update-alternatives --config java</strong></pre>
<p>Abra o arquivo <strong>/etc/environment</strong> para ajustar o caminho do ambiente de execução para todos os usuários:</p>
<pre><strong>$ sudo nano /etc/environment</strong></pre>
<p>Acrescente neste arquivo o caminho do Java consultado anteriormente, da seguinte forma (o arquivo executável em si não entra no caminho informado aqui):</p>
<pre><strong>JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/"</strong></pre>
<p>Salve e feche o arquivo.</p>
<p>Agora, recarregue o arquivo:</p>
<pre><strong>$ sudo source /etc/environment</strong></pre>
<p>Verifique se o caminho foi configurado corretamente, consultando a variável JAVA_HOME:</p>
<pre><strong>$ echo $JAVA_HOME</strong></pre>
<p>Para aplicar essa configuração aos outros usuários, execute esse comando em seus sistemas ou simplesmente faça logoff e login novamente em suas respectivas contas.</p>
<p>E se eu quiser instalar o JDK / JRE oficiais da Oracle (Oracle JDK 12)? Veremos como fazer isso no próximo tutorial.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/">Como instalar o OpenJDK 11 no Linux Debian 10</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como abrir e ler arquivos de texto de acesso sequencial em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Mon, 20 Apr 2020 18:13:50 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15978</guid>

					<description><![CDATA[<p>Como abrir e ler arquivos de texto de acesso sequencial em Java Na lição passada vimos como criar e editar arquivos de texto de acesso sequencial em Java. Agora vamos mostrar como abrir e ler esses arquivos. Usaremos o arquivo criado anteriormente, arquivo.txt, no exemplo. Note que vamos trabalhar com um arquivo cujo local de armazenamento no disco já é conhecido previamente, por isso o caminho do arquivo é hard-coded. Nas lições futuras mostraremos como escolher arquivos em locais aleatórios para leitura e edição. O exemplo que usaremos&#160;foi adaptado de Deitel –&#160;Java How to Program, 10ª edição. A seguir, temos o código completo da aplicação. Código import java.io.IOException; import java.lang.IllegalStateException; import java.util.NoSuchElementException; import java.util.Scanner; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class LerArquivoTexto { private static Scanner entrada; // programa principal public static void main(String[] args) { abrirArquivo(); lerDados(); fecharArquivo(); } // Método para abrir o arquivo arquivo.txt public static void abrirArquivo() { try { entrada = new Scanner(Paths.get("c:\\Java\\arquivo.txt")); // Abrir o arquivo, salvo em C:\Java\ } catch (IOException erroES) { System.err.println("Erro ao abrir o arquivo. Finalizando."); System.exit(1); // terminar o programa } } // Método para ler os registros do arquivo public static void lerDados() { System.out.printf("%-10s%-15s%n","Código","Produto"); try { [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/">Como abrir e ler arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como abrir e ler arquivos de texto de acesso sequencial em Java</h2>
<p>Na lição passada vimos <a href="http://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/" target="_blank" rel="noopener">como criar e editar arquivos de texto de acesso sequencial em Java</a>. Agora vamos mostrar como abrir e ler esses arquivos. Usaremos o arquivo criado anteriormente, <em>arquivo.txt</em>, no exemplo.</p>
<p>Note que vamos trabalhar com um arquivo cujo local de armazenamento no disco já é conhecido previamente, por isso o caminho do arquivo é hard-coded. Nas lições futuras mostraremos como escolher arquivos em locais aleatórios para leitura e edição.</p>
<p>O exemplo que usaremos&nbsp;foi adaptado de Deitel –&nbsp;<strong><em>Java How to Program</em></strong>, 10ª edição. A seguir, temos o código completo da aplicação.</p>
<h3>Código</h3>
<pre><strong>import java.io.IOException;</strong>
<strong>import java.lang.IllegalStateException;</strong>
<strong>import java.util.NoSuchElementException;</strong>
<strong>import java.util.Scanner;</strong>
<strong>import java.nio.file.Files;</strong>
<strong>import java.nio.file.Path;</strong>
<strong>import java.nio.file.Paths;</strong>
<strong>public class LerArquivoTexto</strong>
<strong>{</strong>
<strong>  private static Scanner entrada;</strong>
<span style="color: #339966;"><strong>// programa principal</strong></span>
<strong>  public static void main(String[] args) {</strong>
<strong>    abrirArquivo();</strong>
<strong>    lerDados();</strong>
<strong>    fecharArquivo();</strong>
<strong>}</strong>
<span style="color: #339966;"><strong>// Método para abrir o arquivo arquivo.txt</strong></span>
<strong>  public static void abrirArquivo() {</strong>
<strong>    try {</strong>
<strong>      entrada = new Scanner(Paths.get("c:\\Java\\arquivo.txt")); <span style="color: #339966;">// Abrir o arquivo, salvo em C:\Java\</span></strong>
<strong>    }</strong>
<strong>    catch (IOException erroES) </strong><strong>{</strong>
<strong>      System.err.println("Erro ao abrir o arquivo. Finalizando.");</strong>
<strong>      System.exit(1); <span style="color: #339966;">// terminar o programa</span></strong>
<strong>    }</strong>
<strong>  }</strong>
<span style="color: #339966;"><strong>// Método para ler os registros do arquivo</strong></span>
<strong>  public static void lerDados() {</strong>
<strong>    System.out.printf("%-10s%-15s%n","Código","Produto");</strong>
<strong>    try {</strong>
<strong>      while (entrada.hasNext()) { <span style="color: #339966;">// enquanto houver dados para ler, </span></strong><span style="color: #339966;"><strong>mostrar os registros</strong></span>
<strong>        System.out.printf("%-10d%-12s%n",entrada.nextInt(),entrada.next());</strong>
<strong>      }</strong>
<strong>    }</strong>
<strong>    catch (NoSuchElementException erroElemento) </strong><strong>{</strong>
<strong>      System.err.println("Arquivo com problemas. Finalizando.");</strong>
<strong>      entrada.nextLine(); <span style="color: #339966;">// Descartar a entrada para que o usuário possa tentar de novo</span></strong>
<strong>    }</strong>
<strong>    catch (IllegalStateException erroEstado) </strong><strong>{</strong>
<strong>      System.err.println("Erro ao ler o arquivo. Finalizando.");</strong>
<strong>    }</strong>
<strong>  } <span style="color: #339966;">// fim do método lerDados</span></strong>
<span style="color: #339966;"><strong>// Método para fechar o arquivo aberto</strong></span>
<strong>  public static void fecharArquivo()&nbsp;{</strong>
<strong>    if (entrada != null)</strong>
<strong>      entrada.close();</strong>
<strong>  }</strong>
<strong>} <span style="color: #339966;">// Fim da classe LerArquivoTexto</span></strong></pre>
<p>Ao abrir o arquivo <em>arquivo.txt</em> usando o programa acima, vemos na tela o seguinte resultado:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15981 size-full" title="Ler arquivo de texto com Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ler-arquivo-texto-Java.png" alt="Ler arquivo de texto com Java" width="212" height="140"></p>
<p>Note que no programa principal executamos apenas três métodos: <em>abrirArquivo</em>, <em>lerDados</em> e <em>fecharArquivo</em>, para realizar as operações correspondentes. Todo o processamento é executado dentro desses métodos.</p>
<p>Anterior:&nbsp;<a href="http://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/">Criar e editar arquivos de texto de acesso sequencial em Java</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/">Como abrir e ler arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>A Classe ArrayList e Collections em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Mon, 13 Jan 2020 12:46:07 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15983</guid>

					<description><![CDATA[<p>A Classe ArrayList em Java As Collections são estruturas de dados pré-definidas, fornecidas pela API do Java, que são empregadas para armazenar grupos de objetos relacionados na memória durante a execução do programa. Com estas classes é possível organizar, armazenar e ler dados sem a necessidade de saber exatamente como os dados são armazenados (encapsulamento). Um array convencional não tem seu tamanho modificado automaticamente durante a execução do programa, por exemplo para armazenar novos elementos, o que pode ser um problema, principalmente se surge a necessidade de armazenar mais elementos após um array estar completo. O framework Collections em Java fornece diversas interfaces e classes para manipulação de grupos de objetos, como por exemplo: Interfaces List Set Queue Deque SortedSet Classes ArrayList LinkedList Vector HashSet PriorityQueue LinkedHashSet TreeSet Nesta lição vamos iniciar o estudo das Collections com a classe ArrayList. Classe ArrayList A classe de coleção (collections class) ArrayList&#60;T&#62;, pertencente ao pacote java.util, e que implementa a interface List, resolve o problema de modificação do tamanho de um array em tempo de execução, pois ela pode mudar seu tamanho de forma dinâmica &#8211; ou seja, permite criar um array dinâmico. A letra T indica um placeholder, que é substituído ao [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/">A Classe ArrayList e Collections em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>A Classe ArrayList em Java</h2>
<p>As <em><strong>Collections</strong></em> são estruturas de dados pré-definidas, fornecidas pela API do Java, que são empregadas para armazenar grupos de objetos relacionados na memória durante a execução do programa. Com estas classes é possível organizar, armazenar e ler dados sem a necessidade de saber exatamente como os dados são armazenados (encapsulamento).</p>
<p>Um <a href="http://www.bosontreinamentos.com.br/java/como-usar-arrays-em-java/">array convencional</a> não tem seu tamanho modificado automaticamente durante a execução do programa, por exemplo para armazenar novos elementos, o que pode ser um problema, principalmente se surge a necessidade de armazenar mais elementos após um array estar completo.</p>
<p>O framework <strong>Collections</strong> em Java fornece diversas interfaces e classes para manipulação de grupos de objetos, como por exemplo:</p>
<ul>
<li>Interfaces
<ul>
<li>List</li>
<li>Set</li>
<li>Queue</li>
<li>Deque</li>
<li>SortedSet</li>
</ul>
</li>
<li>Classes
<ul>
<li>ArrayList</li>
<li>LinkedList</li>
<li>Vector</li>
<li>HashSet</li>
<li>PriorityQueue</li>
<li>LinkedHashSet</li>
<li>TreeSet</li>
</ul>
</li>
</ul>
<p>Nesta lição vamos iniciar o estudo das Collections com a classe <strong>ArrayList</strong>.</p>
<h3>Classe ArrayList</h3>
<p>A classe de coleção (collections class) <strong>ArrayList&lt;T&gt;</strong>, pertencente ao pacote <strong>java.util</strong>, e que implementa a <strong>interface List</strong>, resolve o problema de modificação do tamanho de um array em tempo de execução, pois ela pode mudar seu tamanho de forma dinâmica &#8211; ou seja, permite criar um array dinâmico. A letra <strong>T</strong> indica um <em>placeholder</em>, que é substituído ao declarar um ArrayList pelo tipo de elementos que a estrutura irá armazenar.<br />
Suponha que desejemos criar um ArrayList de <a href="http://www.bosontreinamentos.com.br/java/programacao-em-java-a-classe-string-introducao/">strings</a>, de nome produtos. Para tal, executamos a seguinte declaração:</p>
<pre><strong>ArrayList&lt;String&gt; produtos;</strong></pre>
<p>Note que somente tipos não-primitivos podem ser usados para declarar variáveis e criar objetos em classes genéricas &#8211; e o ArrayList é uma classe genérica. Ainda assim, em Java é possível usar tipos primitivos, desde que empacotados como se fossem objetos, em um processo denominado <strong>boxing</strong>. Desta forma, poderíamos criar um ArrayList de inteiros também, por exemplo:</p>
<pre><strong>ArrayList&lt;Integer&gt; numeros;</strong></pre>
<p>Ao ler um valor deste ArrayList o elemento (valor inteiro) é desempacotado (processo de <strong>unboxing</strong>).</p>
<h3>Métodos principais de um ArrayList</h3>
<p>A seguir listamos os principais métodos fornecidos por uma classe ArrayList:</p>
<ul>
<li>Método add &#8211; Adiciona um elemento no final do ArrayList.</li>
<li>Método clear &#8211; Remove todos os elementos da estrutura.</li>
<li>Método contains &#8211; Verifica se o ArrayList contém um elemento especificado, e retorna true em caso positivo, ou false caso contrário.</li>
<li>Método get &#8211; Retorna o item em uma posição de índice especificada.</li>
<li>Método indexOf &#8211; Retorna a posição de índice da primeira ocorrência de um elemento especificado.</li>
<li>Método remove &#8211; Remove a primeira ocorrência de um valor especificado ou de um elemento em um índice.</li>
<li>Método size &#8211; Informa o número de elementos que estão armazenados na estrutura.</li>
<li>Método trimToSize &#8211; Ajusta a capacidade do ArrayList de acordo com o número de elementos armazenados no momento.</li>
</ul>
<h3>Exemplo</h3>
<p>Vejamos um exemplo de uso de ArrayList.</p>
<pre><strong>import java.util.ArrayList;</strong>
<strong>public class ListaArrayList {

</strong><strong>public static void main(String[] args) {</strong>
<span style="color: #339966;"><strong>  // Criar um novo ArrayList de Strings com capacidade inicial de 10 elementos (padrão)</strong></span>
<strong>  ArrayList&lt;String&gt; frutas = new ArrayList&lt;&gt;();

</strong><strong>  frutas.add("Maçã"); <span style="color: #339966;">// Adicionar um item à lista</span></strong>
<strong>  frutas.add(0, "Uva"); <span style="color: #339966;">// Inserir a fruta Uva na posição de índice 0</span>
</strong><strong>  System.out.println("Mostrar o conteúdo do ArrayList usando laço for convencional:");

</strong><strong>  for (int i = 0; i &lt; frutas.size(); i++)</strong>
<strong>    System.out.printf(" %s", frutas.get(i));

</strong><span style="color: #339966;"><strong>  // Mostrar as frutas com o método mostrar(). Passamos a lista e um frase-cabeçalho</strong></span>
<strong>  mostrar(frutas,"%nMostrando a lista de frutas com o método mostrar:");

</strong><strong>  frutas.add("Tangerina"); <span style="color: #339966;">// Adicionar tangerina ao final da lista</span></strong>
<strong>  frutas.add("Morango"); <span style="color: #339966;">// Idem com Morango</span></strong>
<strong>  mostrar(frutas, "Nova visualização da lista após adicionar frutas:");

</strong><strong>  frutas.remove("Uva"); <span style="color: #339966;">// remover a fruta Uva"</span></strong>
<strong>  mostrar(frutas, "Nova visualização da lista após remover frutas:");

</strong><strong>  frutas.remove(1); <span style="color: #339966;">// Remover item na posição de índice 1</span></strong>
<strong>  mostrar(frutas, "Remover o segundo elemento da lista (índice 1):");

</strong><span style="color: #339966;"><strong>  // Verificar número de elementos na lista</strong></span>
<strong>  System.out.printf("Tamanho atual do ArrayList: %s itens%n", frutas.size());

</strong><span style="color: #339966;"><strong>  // Verificar se um item existe na lista</strong></span>
<strong>  System.out.printf("A fruta \"Tangerina\" %sestá na lista%n", frutas.contains("Tangerina") ? "": "não ");</strong>
<strong>}

</strong><span style="color: #339966;"><strong>// criar método para mostrar os elementos do ArrayList frutas</strong></span>
<strong>public static void mostrar(ArrayList&lt;String&gt; frutas, String cabecalho) {</strong>
<strong>  System.out.printf(cabecalho); // mostrar cabeçalho

</strong><strong>  for (String item : frutas)</strong>
<strong>    System.out.printf(" %s", item);</strong>
<strong>    System.out.println();</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15988 size-full" title="Exemplo de ArrayList em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo.png" alt="Exemplo de ArrayList em Java" width="774" height="184" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo.png 774w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo-420x100.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo-768x183.png 768w" sizes="auto, (max-width: 774px) 100vw, 774px" /></p>
<p>Neste exemplo criamos um ArrayList de String chamado de frutas, e adicionamos dois nomes de frutas a ele usando o método <em><strong>add</strong></em>.</p>
<p>Logo após, mostramos o conteúdo do ArrayList iterando pelos seus elementos com um laço for, e lendo cada item com o método <em><strong>get</strong></em>.</p>
<p>Também criamos um método especial para mostrar o conteúdo do ArrayList, de nome <em><strong>mostrar()</strong></em>, que recebe como argumentos o nome do ArrayList e uma mensagem a ser exibida juntamente com os elementos retornados.</p>
<p>Removemos um elemento usando o método <em><strong>remove</strong></em>, e verificamos o seu tamanho com o método <em><strong>size</strong></em>.</p>
<p>Finalmente, verificamos se um item está contido no ArrayList usando o método <em><strong>contains</strong></em>.</p>
<p>Na próxima lição vamos estudar as listas ligadas, implementadas com a classe LinkedList.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/">A Classe ArrayList e Collections em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Como criar e editar arquivos de texto de acesso sequencial em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sat, 14 Dec 2019 19:02:34 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15969</guid>

					<description><![CDATA[<p>Como criar e editar arquivos de texto de acesso sequencial em Java Um arquivo de acesso sequencial é um arquivo no qual os dados (registros) são armazenados em ordem, por um campo registro-chave. Vamos criar nesta lição um arquivo de texto, incluindo escrita, leitura e edição de seu conteúdo. Criar classe para manipular arquivo de texto Para nosso exemplo vamos criar a classe CriarArquivoTexto, que irá usar um objeto Formatter para gerar Strings formatadas, da mesma forma que o método System.out.printf trabalha. E com ele criaremos ou abriremos um arquivo de texto que nomearemos como &#8220;arquivo.txt&#8220;. Se o arquivo não existir, ele será criado; caso o arquivo já exista no sistema, ele será truncado, ou seja, todo o seu conteúdo será apagado e substituído pelo novo conteúdo digitado. Exemplo Vejamos um exemplo de criação e edição de arquivo de texto em Java, adaptado de Deitel &#8211; Java How to Program, 10ª edição: package criarArquivoTexto; import java.io.FileNotFoundException; import java.lang.SecurityException; import java.util.Formatter; import java.util.FormatterClosedException; import java.util.NoSuchElementException; import java.util.Scanner; public class CriarArquivoTexto { private static Formatter saida; // envia texto para um arquivo public static void main(String[] args) { abrirArquivo(); adicionarDados(); fecharArquivo(); } // Método para abrir (ou criar) o arquivo arquivo.txt public [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/">Como criar e editar arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como criar e editar arquivos de texto de acesso sequencial em Java</h2>
<p>Um arquivo de acesso sequencial é um arquivo no qual os dados (registros) são armazenados em ordem, por um campo registro-chave. Vamos criar nesta lição um arquivo de texto, incluindo escrita, leitura e edição de seu conteúdo.</p>
<h3>Criar classe para manipular arquivo de texto</h3>
<p>Para nosso exemplo vamos criar a classe CriarArquivoTexto, que irá usar um objeto <strong>Formatter</strong> para gerar Strings formatadas, da mesma forma que o método System.out.printf trabalha. E com ele criaremos ou abriremos um arquivo de texto que nomearemos como &#8220;<strong>arquivo.txt</strong>&#8220;.</p>
<p>Se o arquivo não existir, ele será criado; caso o arquivo já exista no sistema, ele será truncado, ou seja, todo o seu conteúdo será apagado e substituído pelo novo conteúdo digitado.</p>
<h3>Exemplo</h3>
<p>Vejamos um exemplo de criação e edição de arquivo de texto em Java, adaptado de Deitel &#8211; <strong><em>Java How to Program</em></strong>, 10ª edição:</p>
<pre><strong>package criarArquivoTexto;</strong>
<strong>import java.io.FileNotFoundException;</strong>
<strong>import java.lang.SecurityException;</strong>
<strong>import java.util.Formatter;</strong>
<strong>import java.util.FormatterClosedException;</strong>
<strong>import java.util.NoSuchElementException;</strong>
<strong>import java.util.Scanner;

</strong><strong>public class CriarArquivoTexto {
</strong><strong>  private static Formatter saida; <span style="color: #339966;">// envia texto para um arquivo

</span></strong><strong>    public static void main(String[] args) {</strong>
<strong>      abrirArquivo();</strong>
<strong>      adicionarDados();</strong>
<strong>      fecharArquivo();</strong>
<strong>    }

</strong><span style="color: #339966;"><strong>    // Método para abrir (ou criar) o arquivo arquivo.txt</strong></span>
<strong>    public static void abrirArquivo() {</strong>
<strong>      try {</strong>
<strong>        saida = new Formatter("arquivo.txt"); <span style="color: #339966;">// Abrir o arquivo</span></strong>
<strong>      }</strong>
<strong>      catch (SecurityException securityException) {</strong>
<strong>        System.err.println("Não é possível escrever no arquivo. Finalizando.");</strong>
<strong>        System.exit(1); <span style="color: #339966;">// terminar o programa</span></strong>
<strong>      }</strong>
<strong>      catch (FileNotFoundException fileNotFoundException) {</strong>
<strong>        System.err.println("Erro ao abrir o arquivo. Finalizando.");</strong>
<strong>        System.exit(1); <span style="color: #339966;">// Finalizar o programa</span></strong>
<strong>      }</strong>
<strong>   }

</strong><span style="color: #339966;"><strong>    // Método para adicionar registros ao arquivo</strong></span>
<strong>    public static void adicionarDados() {</strong>
<strong>      Scanner entrada = new Scanner(System.in);</strong>
<strong>      System.out.printf("%s%n","Entre com o código do produto e nome do item para cadastro:");</strong>
<strong>      System.out.printf("%s%n","Para salvar os dados inseridos pressione Ctrl+Z:");</strong>
<strong>      while (entrada.hasNext()) { <span style="color: #339966;">// iterar até que seja encontrado o marcador de fim-de-arquivo</span></strong>
<strong>        try {</strong>
<span style="color: #339966;"><strong>          // Gravar novo registro no arquivo; não verifica se entrada é válida.</strong></span>
<strong>          saida.format("%d %s %n", entrada.nextInt(),entrada.next());</strong>
<strong>        }</strong>
<strong>        catch (FormatterClosedException formatterClosedException) {</strong>
<strong>          System.err.println("Erro ao escrever no arquivo. Finalizando.");</strong>
<strong>          break;</strong>
<strong>        }</strong>
<strong>        catch (NoSuchElementException elementException) {</strong>
<strong>          System.err.println("Entrada inválida. Tente novamente.");</strong>
<strong>          entrada.nextLine(); <span style="color: #339966;">// Descartar a entrada para que o usuário possa tentar de novo</span></strong>
<strong>        }</strong>
<strong>        System.out.print("Entre com o próximo código e item:\n");</strong>
<strong>      } <span style="color: #339966;">// Fim do laço while</span></strong>
<strong>    } <span style="color: #339966;">// Fim do método adicionarDados

</span></strong><span style="color: #339966;"><strong>    // Método para fechar o arquivo</strong></span>
<strong>    public static void fecharArquivo() {</strong>
<strong>      if (saida != null)</strong>
<strong>        saida.close();</strong>
<strong>    }</strong>
<strong>} <span style="color: #339966;">// Fim da classe CriarArquivoTexto</span></strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15973 size-full" title="Criar arquivo de texto com Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java.png" alt="Criar arquivo de texto com Java" width="607" height="271" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java.png 607w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java-420x188.png 420w" sizes="auto, (max-width: 607px) 100vw, 607px" /></p>
<p>Note que para sinalizar o final de arquivo e sair do programa, usamos a combinação de teclas Ctrl+Z. Esse é o marcador EOF padrão no Windows. Se estiver usando outro sistema operacional, o marcador poderá ser diferente:</p>
<table style="border-collapse: collapse; width: 86.1139%; height: 79px;" border="1">
<thead>
<tr>
<td style="width: 50%; text-align: center;"><strong>Sistema Operacional</strong></td>
<td style="width: 50%; text-align: center;"><strong>Marcador EOF (Combinação de teclas)</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 50%; text-align: center;">Microsoft Windows</td>
<td style="width: 50%; text-align: center;">Ctrl + Z</td>
</tr>
<tr>
<td style="width: 50%; text-align: center;">Unix / Linux / Mac OS X</td>
<td style="width: 50%; text-align: center;">&lt;Enter&gt; Ctrl + d</td>
</tr>
</tbody>
</table>
<p>Após a execução do programa, podemos entrar na pasta do projeto e lá encontraremos o arquivo gerado. Se o abrirmos usando o editor de texto padrão do sistema, veremos o conteúdo que foi fornecido à aplicação anteriormente:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15974 size-full" title="Arquivo de texto criado com Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java-bloco-de-notas.png" alt="Arquivo de texto criado com Java" width="363" height="214"></p>
<p>Arquivo criado e dados salvos com sucesso! Na próxima lição vamos aprender a ler os dados armazenados em um arquivo de texto sequencial usando Java.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/">Como criar e editar arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Obter informações sobre arquivos e diretórios com Java e classes NIO</title>
		<link>https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/</link>
					<comments>https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 13 Dec 2019 13:38:35 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15943</guid>

					<description><![CDATA[<p>Obter informações sobre arquivos e diretórios com Java e classes NIO Os dados presentes na memória RAM do computador são temporários, o que significa que são perdidos em algum momento, por exemplo ao desligar a máquina. Isso inclui dados presentes nas variáveis dentro de um programa &#8211; como as aplicações Java &#8211; o que nos traz o seguinte problema: como armazenar dados de forma permanente, sem que haja perda de informação? A questão é muito importante, pois é muito comum que haja a necessidade de armazenar informação para uso posterior. Para tal fazemos uso de arquivos, que são conjuntos de dados estruturados armazenados em dispositivos de armazenamento secundários, como um disco rígido, SSD ou mídia óptica, por exemplo. Dados gravados nesses dispositivos são dados persistentes &#8211; continuam existindo mesmo após terminada a execução de um programa. Neste lição vamos introduzir a manipulação de arquivos em Java, mostrando como é possível obter informações sobre arquivos e diretórios existentes em uma mídia, como no HD do computador. O que veremos neste tutorial: Quais classes manipulam arquivos em Java? O que são Streams em Java? O que são Dispositivos Especiais? Para que servem os pacotes java.io e java.nio? Como usar as classes Paths [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/">Obter informações sobre arquivos e diretórios com Java e classes NIO</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Obter informações sobre arquivos e diretórios com Java e classes NIO</h2>
<p>Os dados presentes na memória RAM do computador são temporários, o que significa que são perdidos em algum momento, por exemplo ao desligar a máquina. Isso inclui dados presentes nas variáveis dentro de um programa &#8211; como as aplicações Java &#8211; o que nos traz o seguinte problema: como armazenar dados de forma permanente, sem que haja perda de informação?</p>
<p>A questão é muito importante, pois é muito comum que haja a necessidade de armazenar informação para uso posterior. Para tal fazemos uso de arquivos, que são conjuntos de dados estruturados armazenados em dispositivos de armazenamento secundários, como um disco rígido, SSD ou mídia óptica, por exemplo. Dados gravados nesses dispositivos são dados persistentes &#8211; continuam existindo mesmo após terminada a execução de um programa.</p>
<p>Neste lição vamos introduzir a manipulação de arquivos em Java, mostrando como é possível obter informações sobre arquivos e diretórios existentes em uma mídia, como no HD do computador.</p>
<p>O que veremos neste tutorial:</p>
<ul>
<li><a href="#classes-manipular-arquivos-java">Quais classes manipulam arquivos em Java?</a></li>
<li><a href="#streams-java-fluxos">O que são Streams em Java?</a></li>
<li><a href="#dispositivos-especiais-java">O que são Dispositivos Especiais?</a></li>
<li><a href="#pacotes-java.io-java.nio-java">Para que servem os pacotes java.io e java.nio?</a></li>
<li><a href="#classe-paths-classe-files-java">Como usar as classes Paths e Files em Java?</a></li>
</ul>
<h3 id="classes-manipular-arquivos-java">Classes para manipulação de arquivos em Java</h3>
<p>Existem diversas classes e interfaces que permitem a manipulação de arquivos e pastas em Java. Vamos estudar as seguintes neste tutorial:</p>
<ul>
<li>Pacote java.nio.file</li>
<li>Classe Paths</li>
<li>Classe Files</li>
<li>Interface Path</li>
<li>Interface DirectoryStream</li>
</ul>
<h3 id="streams-java-fluxos">Fluxos (Streams)</h3>
<p>Em Java, os arquivos são vistos como fluxos sequenciais de bytes (<em><strong>streams</strong></em>). Ao processar um arquivo, o Java processa um fluxo de bytes até encontrar um marcador especial que indica o final do fluxo &#8211; ou seja, o final do arquivo. Chamamos a esse marcados de Marcador de Fim-de-Arquivo (<strong>End-Of-File / EOF</strong>).</p>
<p>Os fluxos de dados podem ser de dois tipos:</p>
<ul>
<li><strong>Baseado em Bytes</strong> &#8211; Os dados são lidos e gravados em formato binário (bits), de modo que, por exemplo, um dado do tipo <em>int</em> ocupe quatro bytes, um do tipo <em>char</em>, dois bytes, e assim sucessivamente, dependendo do tipo de dado. Arquivos criados com fluxo baseado em bytes são denominados Arquivos Binários.<br />
Somente programas que entendam a organização dos bytes são capazes de ler esse tipo de arquivo.</li>
<li><strong>Baseado em Caracteres</strong> &#8211; Neste caso, os dados são lidos e gravados como <a href="http://www.bosontreinamentos.com.br/java/a-classe-character-em-java/">sequências de caracteres</a>, sendo que cada caractere tem dois bytes de tamanho, e o tamanho de um dado depende, assim, do número de caracteres que ele possui. Arquivos criados com fluxo baseado em caracteres são denominados Arquivos de Texto.<br />
Editores de texto são capazes de ler este tipo de arquivo.</li>
</ul>
<h3 id="dispositivos-especiais-java">Fluxos e dispositivos especiais</h3>
<p>Um fluxo de dados pode ser associado a diferentes dispositivos pelo Java. Ao iniciar um programa, o Java cria três objetos de fluxo, associados com dispositivos: <em><strong>System.in</strong></em>, <em><strong>System.out</strong></em> e <em><strong>System.err</strong></em>. Dois deles você provavelmente já viu em algum programa &#8211; lembra-se do System.in em um objeto Scanner, ou do System,out ao chamar um método printf ou println? Esses dispositivos representam o seguinte:</p>
<ul>
<li><strong>System.in</strong> &#8211; Dispositivo de entrada padrão, que habilita um programa a receber dados oriundos do teclado.</li>
<li><strong>System.out</strong> &#8211; Saída padrão. Habilita o programa a enviar dados de saída à tela.</li>
<li><strong>System.err</strong> &#8211; Erro padrão. Permite que um programa envie mensagens de erro para a tela.</li>
</ul>
<p>Esses fluxos de dados podem ser redirecionados, de modo que seja possível ler entrada de dados de outros dispositivos, por exemplo, ou enviá-los para outro local.</p>
<h3 id="pacotes-java.io-java.nio-java">Pacotes java.io e java.nio</h3>
<p>Esses pacotes possuem as classes e interfaces empregadas no processamento de fluxos de dados em Java. Vamos trabalhar com esses elementos em um programa simples, que irá mostrar dados sobre arquivos e diretórios especificados no console. Antes disso, vamos descrever as principais classes que serão empregadas:</p>
<ul>
<li><strong>Interface Path</strong> &#8211; Os objetos de classes que implementam esta interface permitem representar o local de um arquivo ou diretório no sistema. Porém, não permitem abrir ou editar arquivos.</li>
<li><strong>Interface DirectoryStream</strong> &#8211; Os objetos de classes que implementam esta interface permitem que a aplicação seja capaz de iterar pelo conteúdo de uma pasta no sistema.</li>
<li><strong>Classe Paths</strong> &#8211; Esta classe fornece métodos estáticos que são empregados para obter um objeto Path, que representa o local de um arquivo ou diretório no sistema. Um objeto <strong>Path</strong> é criado por meio do uso do método estático <strong>get</strong> desta classe, o qual converte uma String que representa o local de um arquivo ou diretório no objeto.</li>
<li><strong>Classe Files</strong> &#8211; Esta classe fornece métodos estáticos que podem ser usados para realizar manipulação de arquivos e diretórios, como criar, excluir ou copiar arquivos, obter dados sobre arquivos e diretórios, ler o conteúdo de um arquivo, entre outros.</li>
</ul>
<h3 id="classe-paths-classe-files-java">Exemplo</h3>
<p>No exemplo mostrado a seguir, usamos as classes e interfaces apresentadas para obter informações sobre um arquivo ou diretório, cujo caminho é fornecido pelo usuário e lido por um objeto Scanner.</p>
<pre><strong>package lerGravarArquivos;</strong>
<strong>import java.io.IOException;</strong>
<strong>import java.nio.file.DirectoryStream;</strong>
<strong>import java.nio.file.Files;</strong>
<strong>import java.nio.file.Path;</strong>
<strong>import java.nio.file.Paths;</strong>
<strong>import java.util.Scanner;</strong>
<strong>public class LerGravarArquivos {

</strong><strong>  public static void main(String[] args) throws IOException {

</strong><strong>    Scanner entrada = new Scanner(System.in);</strong>
<strong>    System.out.println("Entre com o nome do arquivo ou diretório:");

</strong><span style="color: #339966;"><strong>    // Criar objeto Path com a entrada fornecida pelo usuário</strong></span>
<strong>    Path caminho = Paths.get(entrada.nextLine());

</strong><span style="color: #339966;"><strong>    // Verificar se o caminho existe, e mostrar informações sobre ele em caso positivo:</strong></span>
<strong>    if (Files.exists(caminho)) {</strong>
<strong>      System.out.printf("Nome do arquivo: %s%n", caminho.getFileName());</strong>
<strong>      System.out.printf("É diretório? %s%n",Files.isDirectory(caminho)?"Sim":"Não");</strong>
<strong>      System.out.printf("Última modificação: %s%n",Files.getLastModifiedTime(caminho));</strong>
<strong>      System.out.printf("Tamanho: %s%n",Files.size(caminho));</strong>
<strong>      System.out.printf("Caminho: %s%n",caminho);

</strong><span style="color: #339966;"><strong>      //Se for diretório, mostrar seu conteúdo:</strong></span>
<strong>      if (Files.isDirectory(caminho)) {</strong>
<strong>        System.out.println("Conteúdo do diretório:\n");</strong>
<strong>        DirectoryStream&lt;Path&gt; directoryStream = Files.newDirectoryStream(caminho);</strong>
<strong>        for (Path cam : directoryStream) {</strong>
<strong>          System.out.println(cam);</strong>
<strong>        }</strong>
<strong>      }</strong>
<strong>    }</strong>
<strong>    else { <span style="color: #339966;">// Se o caminho não for arquivo ou diretório, apresentar mensagem de erro</span></strong>
<strong>      System.out.printf("%nO caminho %s não existe.",caminho);</strong>
<strong>    }</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15945 size-full" title="obter dados sobre Arquivos e diretórios em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/arquivos-diretorios-java-nio.png" alt="obter dados sobre Arquivos e diretórios em Java" width="525" height="487" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/arquivos-diretorios-java-nio.png 525w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/arquivos-diretorios-java-nio-420x390.png 420w" sizes="auto, (max-width: 525px) 100vw, 525px" /></p>
<p>Os métodos empregados são, basicamente, auto-explicativos. Note que é importante acrescentar a declaração <em><strong>throws IOException</strong></em> no método <em><strong>main</strong></em>, caso contrário alguns dos métodos empregados no programa não serão executados pelo compilador.</p>
<p>Nas próximas lições veremos como criar, editar e manipular arquivos de texto em Java.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/">Obter informações sobre arquivos e diretórios com Java e classes NIO</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como tokenizar strings em Java com o método split</title>
		<link>https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/</link>
					<comments>https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 12 Dec 2019 12:44:59 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Análise de Dados]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15934</guid>

					<description><![CDATA[<p>Como tokenizar strings em Java com o método split da classe String Damos o nome de tokens às palavras individuais e marcas de pontuação (pontos, vírgulas, etc) que compõem e dão sentido a uma frase ou parágrafo de texto. Quando lemos um texto qualquer, nosso cérebro efetua a separação dessas palavras automaticamente, de modo a entendermos o significado do conteúdo lido. Não só nós realizamos esse processo &#8211; compiladores, por exemplo, também realizam a separação de sentença e comandos em partes individuais, como palavras-chave, operadores, nomes de objetos e outros elementos que compõem o código-fonte. Em outras palavras, os compiladores tokenizam o código para analisá-lo, antes de tentar executá-lo. Em Java, é possível realizar essa separação de elementos em uma string &#8211; ou seja, tokenizar &#8211; por meio do emprego do método split, pertencente à classe String. Método split &#8211; Divide um objeto String em seus tokens componentes, separados entre si por delimitadores especificados. Comumente, os delimitadores empregados são caracteres de espaço, tabulação, newline (quebra de linha), entre outros. Mas também é possível usar outros caracteres como delimitadores &#8211; por exemplo, é comum usar vírgulas em arquivos do tipo CSV (comma-separated values / valores separados por vírgulas). O método split [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/">Como tokenizar strings em Java com o método split</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como tokenizar strings em Java com o método split da classe String</h2>
<p>Damos o nome de <em><strong>tokens</strong></em> às palavras individuais e marcas de pontuação (pontos, vírgulas, etc) que compõem e dão sentido a uma frase ou parágrafo de texto. Quando lemos um texto qualquer, nosso cérebro efetua a separação dessas palavras automaticamente, de modo a entendermos o significado do conteúdo lido.</p>
<p>Não só nós realizamos esse processo &#8211; compiladores, por exemplo, também realizam a separação de sentença e comandos em partes individuais, como palavras-chave, operadores, nomes de objetos e outros elementos que compõem o código-fonte.<br />
Em outras palavras, os compiladores <strong>tokenizam</strong> o código para analisá-lo, antes de tentar executá-lo.</p>
<p>Em Java, é possível realizar essa separação de elementos em uma string &#8211; ou seja, tokenizar &#8211; por meio do emprego do método <em><strong>split</strong></em>, pertencente à <a href="http://www.bosontreinamentos.com.br/java/programacao-em-java-a-classe-string-introducao/">classe String</a>.</p>
<p>Método split &#8211; Divide um objeto String em seus tokens componentes, separados entre si por delimitadores especificados. Comumente, os delimitadores empregados são caracteres de espaço, tabulação, newline (quebra de linha), entre outros. Mas também é possível usar outros caracteres como delimitadores &#8211; por exemplo, é comum usar vírgulas em arquivos do tipo <strong>CSV</strong> (comma-separated values / valores separados por vírgulas).</p>
<p>O método split toma como argumento um caractere a ser considerado como delimitador.</p>
<h3>Exemplo</h3>
<p>Vejamos um exemplo de tokenização de uma String em Java.</p>
<pre><strong>Scanner entrada = new Scanner(System.in);</strong>
<strong>System.out.println("Digite um texto para ser dividido em seus tonkens constituintes, e pressione enter:");</strong>
<strong>String texto = entrada.nextLine();</strong>
<span style="color: #339966;"><strong>// Realizar o processamento da frase, separando seus tokens</strong></span>
<strong>String[] tokens = texto.split(" ");</strong>
<span style="color: #339966;"><strong>//Informar quantos tokens há na frase:</strong></span>
<strong>System.out.printf("%nA frase informada possui %d tokens.%n", tokens.length);</strong>
<span style="color: #339966;"><strong>//Mostrar os tokens obtidos</strong></span>
<strong>System.out.println("Os tokens da frase são:\n");</strong>
<strong>for (String item : tokens) {</strong>
<strong>  System.out.println(item);</strong>
<strong>}</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15938 size-full" title="como tokenizar strings em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java.png" alt="como tokenizar strings em Java" width="837" height="330" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java.png 837w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java-420x166.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java-768x303.png 768w" sizes="auto, (max-width: 837px) 100vw, 837px" /></p>
<p>Neste exemplo, a frase informada é tokenizada pelo método split, que recebeu como argumento o delimitador espaço (&#8221; &#8220;), e os tokens individuais são armazenados em um array de String que chamamos de tokens. Assim, podemos acessar qualquer um dos tokens simplesmente lendo uma posição no array, ou imprimir todos eles, como fizemos no programa.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/">Como tokenizar strings em Java com o método split</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Converter caracteres e dígitos com digit e forDigit, métodos da classe Character em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 12 Dec 2019 12:41:03 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15927</guid>

					<description><![CDATA[<p>Converter caracteres e dígitos com digit e forDigit Em Java é possível realizar conversão entre dados do tipo caractere e dígitos numéricos, em diversas bases, com o emprego de alguns métodos da classe Character. Neste tutorial veremos como fazer isso usando os métodos digit e forDigit. Método forDigit &#8211; Converte um dígito inteiro em caractere, na base (sistema de numeração) especificada pelo inteiro radix (base). Por exemplo, o valor inteiro decimal 15, ao ser convertido em seu caractere correspondente na base 16, é representado por &#8216;F&#8217; (sem distinção entre maiúsculas e minúsculas). Sua sintaxe é a seguinte: forDigit(numero,base) Método digit &#8211; Converte um valor de caractere em um número inteiro especificado por um valor de base inteiro (radix). Por exemplo, o caractere &#8216;B&#8217;, na base 16, é convertido para o valor 11 na base 10 (decimal). O valor de base (radix) deve ser um número entre 2 e 36, inclusive.&#160;Sua sintaxe é a seguinte: digit(caractere,base) Exemplo Vejamos dois exemplos de conversão usando esses métodos em Java. Scanner entrada = new Scanner(System.in); System.out.println("Digite o valor da base numérica, entre 2 e 36:"); int base = entrada.nextInt(); System.out.println("\nDigite o caractere desejado para conversão:"); char caractere = entrada.next().charAt(0); System.out.println("\nDigite o número desejado para [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/">Converter caracteres e dígitos com digit e forDigit, métodos da classe Character em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Converter caracteres e dígitos com digit e forDigit</h2>
<p>Em Java é possível realizar conversão entre dados do tipo caractere e dígitos numéricos, em diversas bases, com o emprego de alguns métodos da classe Character. Neste tutorial veremos como fazer isso usando os métodos <strong>digit</strong> e <strong>forDigit</strong>.</p>
<ul>
<li><strong>Método forDigit</strong> &#8211; Converte um dígito inteiro em caractere, na base (sistema de numeração) especificada pelo inteiro radix (base). Por exemplo, o valor inteiro decimal 15, ao ser convertido em seu caractere correspondente na base 16, é representado por &#8216;F&#8217; (sem distinção entre maiúsculas e minúsculas). Sua sintaxe é a seguinte:
<pre>forDigit(numero,base)</pre>
</li>
<li><strong>Método digit</strong> &#8211; Converte um valor de caractere em um número inteiro especificado por um valor de base inteiro (radix). Por exemplo, o caractere &#8216;B&#8217;, na base 16, é convertido para o valor 11 na base 10 (decimal). O valor de base (radix) deve ser um número entre 2 e 36, inclusive.&nbsp;Sua sintaxe é a seguinte:
<pre>digit(caractere,base)</pre>
</li>
</ul>
<h3>Exemplo</h3>
<p>Vejamos dois exemplos de conversão usando esses métodos em Java.</p>
<pre><strong>Scanner entrada = new Scanner(System.in);

</strong><strong>System.out.println("Digite o valor da base numérica, entre 2 e 36:");</strong>
<strong>int base = entrada.nextInt();

</strong><strong>System.out.println("\nDigite o caractere desejado para conversão:");</strong>
<strong>char caractere = entrada.next().charAt(0);

</strong><strong>System.out.println("\nDigite o número desejado para conversão:");</strong>
<strong>int numero = entrada.nextInt();

</strong><strong>System.out.printf("%d convertido em caractere equivale a \'%s\'%n", numero, Character.forDigit(numero, base));</strong>
<strong>System.out.printf("\'%s\' convertido em dígito base %d equivale a %d%n", caractere, base, Character.digit(caractere, base));</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15931 size-full" title="Metodos digit e forDigit da classe Character em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/digit-forDigit-classe-character-Java.png" alt="Metodos digit e forDigit da classe Character em Java" width="508" height="227" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/digit-forDigit-classe-character-Java.png 508w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/digit-forDigit-classe-character-Java-420x188.png 420w" sizes="auto, (max-width: 508px) 100vw, 508px" /></p>
<p>Neste exemplo, convertemos o valor numérico 14 em seu caractere correspondente no sistema hexadecimal (base 16), que é a letra &#8216;e&#8217;, e realizamos a conversão inversa &#8211; fornecemos o valor &#8216;A&#8221; em hexadecimal e o convertemos em seu valor correspondente no sistema decimal.</p>
<p>Anterior: A <a href="http://www.bosontreinamentos.com.br/java/a-classe-character-em-java/">Classe Character em Java</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/">Converter caracteres e dígitos com digit e forDigit, métodos da classe Character em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Classe Character em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/a-classe-character-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/a-classe-character-em-java/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 06 Dec 2019 22:04:40 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15906</guid>

					<description><![CDATA[<p>A Classe Character em Java Para a manipulação de strings em Java existe a classe String, que já estudamos em outra lição. Porém, ao trabalharmos com caracteres individuais é muito comum usar o tipo primitivo char. Porém, o tipo char, justamente por ser um tipo primitivo, não possui métodos especializados para a manipulação de dados do tipo. Mas isso não significa que não seja possível usar métodos específicos em tipos de caractere &#8211; basta para isso manipular o tipo com uma classe wrapper.&#160; A classe Character é uma classe wrapper, ou seja, um classe que embrulha / empacota valores primitivos, permitindo que esses valores sejam tratados como se fossem objetos. A maior parte dos métodos da classe Character são métodos estáticos, empregados no processamento de caracteres individuais. Os métodos recebem um ou mais caracteres como argumento e realizam testes ou manipulação dos caracteres. Também é possível inicializar um objeto Character, pois esta classe possui um método construtor que recebe um caractere como argumento para inicializar o objeto. Exemplos Vejamos alguns exemplos de uso da classe Character em Java. Scanner entrada = new Scanner(System.in); // Não esqueça de importar o Scanner no início do código! System.out.println("Digite um caractere qualquer e pressione [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/a-classe-character-em-java/">A Classe Character em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>A Classe Character em Java</h2>
<p>Para a manipulação de strings em Java existe a <a href="http://www.bosontreinamentos.com.br/java/programacao-em-java-a-classe-string-introducao/">classe String</a>, que já estudamos em outra lição. Porém, ao trabalharmos com caracteres individuais é muito comum usar o tipo primitivo char. Porém, o tipo char, justamente por ser um tipo primitivo, não possui métodos especializados para a manipulação de dados do tipo. Mas isso não significa que não seja possível usar métodos específicos em tipos de caractere &#8211; basta para isso manipular o tipo com uma classe wrapper.&nbsp;</p>
<p>A classe <strong>Character</strong> é uma <strong><em>classe wrapper</em></strong>, ou seja, um classe que embrulha / empacota valores primitivos, permitindo que esses valores sejam tratados como se fossem objetos.</p>
<p>A maior parte dos métodos da classe Character são métodos estáticos, empregados no processamento de caracteres individuais. Os métodos recebem um ou mais caracteres como argumento e realizam testes ou manipulação dos caracteres.</p>
<p>Também é possível inicializar um objeto Character, pois esta classe possui um método construtor que recebe um caractere como argumento para inicializar o objeto.</p>
<h3>Exemplos</h3>
<p>Vejamos alguns exemplos de uso da classe Character em Java.</p>
<pre><strong>Scanner entrada = new Scanner(System.in); <span style="color: #339966;">// Não esqueça de importar o Scanner no início do código!</span></strong>
<strong>System.out.println("Digite um caractere qualquer e pressione Enter:");</strong>
<strong>String str = entrada.next();</strong>
<strong>char c = str.charAt(0); <span style="color: #339966;">// Obter o caractere digitado

</span></strong><span style="color: #339966;"><strong>// Usando a classe Character para obter informações:</strong></span>
<strong>System.out.printf("é definido? %b%n", Character.isDefined(c));</strong>
<strong>System.out.printf("é um dígito? %b%n", Character.isDigit(c));</strong>
<strong>System.out.printf("é uma letra? %b%n", Character.isLetter(c));</strong>
<strong>System.out.printf("é letra ou dígito? %b%n", Character.isLetterOrDigit(c));</strong>
<strong>System.out.printf("Maiúsculo? %b%n", Character.isUpperCase(c));</strong>
<strong>System.out.printf("Minúsculo? %b%n", Character.isLowerCase(c));</strong>
<strong>System.out.printf("Converter para maiúsculo: %s%n", Character.toUpperCase(c));</strong>
<strong>System.out.printf("Converter para minúsculo: %s%n", Character.toLowerCase(c));</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15908 size-full" title="Métodos da classe Character em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/classe-character-java.png" alt="Métodos da classe Character em Java" width="413" height="205"></p>
<p>Os métodos usados nos exemplos foram os seguintes:</p>
<ul>
<li><strong>isDefined</strong> &#8211;&nbsp;Determina se o caractere passado como argumento está definido no conjunto de caracteres Unicode. Se estiver, o método retorna true; caso contrário, retorna false.</li>
<li><strong>isDigit</strong> &#8211;&nbsp;Determina se o caractere é um dígito (número) definido no Unicode.</li>
<li><strong>isLetter</strong> &#8211;&nbsp;Determina se o caractere é uma letra do alfabeto.</li>
<li><strong>isLetterOrDigit</strong> &#8211;&nbsp;Determina se o caractere é uma letra ou um dígito numérico.</li>
<li><strong>isUpperCase</strong> &#8211;&nbsp;Determina se o caractere é uma letra maiúscula.</li>
<li><strong>isLowerCase</strong> &#8211;&nbsp;Determina se o caractere é uma letra minúscula.</li>
<li><strong>toUpperCase</strong> &#8211;&nbsp;Converte o caractere para maiúscula.</li>
<li><strong>toLowerCase</strong> &#8211;&nbsp;Converte o caractere para minúscula.</li>
</ul>
<p>Na próxima lição veremos mais alguns métodos importantes da classe Character, como os métodos digit e forDigit, por exemplo.</p>
<p>Até!</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/a-classe-character-em-java/">A Classe Character em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/a-classe-character-em-java/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
