Leitura do teclado

Propaganda
Programação - Java
Há diversas formas de introduzir valores num programa:
- Leitura do teclado
- Redireccionar o Standard Input
- Passagem de argumentos
- Ler de um ficheiro
Leitura do teclado
// importar o pacote
import java.util.Scanner;
…
// criar uma ligação ao Standard Input
Scanner teclado = new Scanner(System.in);
// ler uma palavra
String texto = teclado.next();
Redireccionar o Standard Input, na linha de comando com o símbolo
<
A consola
é um ficheiro chamado con (ou con: ) que pode ser lido pelo teclado e escrito para o ecrã.
c:>
c:>copy con lixo.txt
213 345
645
12
345 7456 termina com: control Z no Windows
e
control D no Linux :) ^Z
c:>
c:> javac UsarHasNext.java
c:> java UsarHasNext < lixo.txt
Também é possível redireccionar o Standard Output, na linha de comando com o
símbolo >
c:> java UsarHasNext > saida.txt
235a
c:> cat saida.txt
//ou
c:> type saida.txt
mostra o conteúdo do ficheiro
Total: 10 No fim escreveu:< a>
c:>
c:> java UsarHasNext < lixo.txt >saida.txt
c:>
Vitor Vaz da Silva – ISEL
PG-C-1
Programação - Java
Passagem de argumentos, é outro modo de entregar dados a um programa e também
se faz na linha de comando, como mostra o exemplo seguinte:
c:> java Soma 1 34 54 78
Total: 167
c:> java Soma 1 2 3 4 5 6 7 8 9 10
Total: 55
public class Soma{
public static void main(String [] argumentos){
int num=0;
int idx=0;
while( idx<argumentos.length ){
num+=Integer.parseInt(argumentos[idx]);
idx++;
}
System.out.println("Total: "+num);
}
}
Repare que não necessita do Scanner para ler os argumentos, porque estes são
colocados numa tabela de String e passados como parâmetros do método main(String
[]aqui)
Vitor Vaz da Silva – ISEL
PG-C-2
Programação - Java
Ler de um ficheiro, ou de vários é semelhante a ler do teclado, basta indicar qual o
nome do ficheiro.
Scanner ficheiro = new Scanner( new File (nomeDoFicherio) );
Porém para que isso se possa efectuar é necessário assegurar o seguinte:
// importar os pacotes
import java.io.File;
import java.io.FileNotFoundException;
// saber o nome do ficheiro a ser lido
String nome="um ficheiro.txt";
Scanner fich=null; // criar e iniciar a variável
// tentativa de abertura do ficheiro
try {
fich = new Scanner(new File(nome));
} catch (FileNotFoundException e) {
System.out.println("Ficheiro <"+ nome +"> não existe");
}
// se tudo correu bem ...
if( fich!= null){
…
// ficheiro aberto e para ser usado como se fosse o do teclado
String palavra = fich.next();
…
…
…
}
Nota: O uso de try e catch não faz parte do programa da disciplina de PG.
Vitor Vaz da Silva – ISEL
PG-C-3
Programação - Java
Exemplo: Um programa para ler um ficheiro e mostrá-lo no ecrã com as linhas numeradas. O nome
do ficheiro é passado por argumento.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class MostraFich{
public static void main(String [] arg){
Scanner fich=null;
if(arg.length!=1) System.out.println("usar: java MostraFich ficheiro");
else{
try {
fich = new Scanner( new File(arg[0]));
} catch (FileNotFoundException e) {
System.out.println("O ficheiro <"+arg[0]+"> não existe");
}
}
if(fich!=null){
int linha=1;
while(fich.hasNextLine()){
String texto=fich.nextLine();
System.out.println(linha++ + ": "+texto);
}
fich.close(); // um bom hábito: fechar os ficheiros
// quando já não são precisos.
}
}
}
c:>
c:> copy con entrada.txt
1: Um ficheiro
Um ficheiro
2: com 3 linhas
com 3 linhas
3: e acaba aqui.
e acaba aqui.^Z
c:>
c:>
c:> java MostraFich con:
c:> java MostraFich entrada
olá
O ficheiro <entrada> não existe
bom dia :)^Z
c:>
1: olá
c:> java MostraFich entrada.txt
2: bom dia :)
Vitor Vaz da Silva – ISEL
PG-C-4
Download