A classe `scanner` em Java aceita vários parâmetros em seus construtores, influenciando como ela lê a entrada. Os construtores mais comuns são:
*
`scanner (InputStream Source)`: Este é o construtor mais geral. É preciso um `inputStream` como um argumento, que representa um fluxo de bytes. Isso permite que você leia de várias fontes:
* `System.in`:lê a partir da entrada padrão (normalmente o teclado). Este é o uso mais comum.
* `new FileInputStream (" myfile.txt ")`:lê em um arquivo. Você precisará de manuseio de erro apropriado (por exemplo, `Blocos Try-Catch`) para gerenciar potenciais` filenotfoundException`.
* `novo ByteArrayInputStream (bytearray)`:lê de uma matriz de bytes. Útil para testar ou processamento de dados na memória.
*
`scanner (fonte legível)`: Este construtor é semelhante ao construtor `inputStream`, mas usa a interface` legível '. `Readertable` é uma interface mais geral do que 'inputStream`, abrangendo uma gama mais ampla de fontes de entrada. `Leitor` classes (como` fileReader`, `stringReader`, etc.) implementar` legível`.
*
`scanner (fonte de arquivo)`: Um construtor de conveniência que pega diretamente um objeto `arquivo` como entrada. Internamente, isso cria um `FileInputStream`. Requer tratamento de erros para `filenotfoundException`.
*
`scanner (fonte da string)`: Isso cria um scanner que lê a partir de uma determinada string. Útil para testar ou processar dados de string sem arquivos externos.
Nenhum outro parâmetros é passado diretamente para o construtor do scanner. No entanto, você pode influenciar * como * o scanner opera através de seus métodos:
*
`usedElimiter (...)`: Altera o delimitador usado para separar os tokens (palavras ou números). Por padrão, ele usa espaço em branco. Você pode especificar uma expressão regular como delimitador.
*
`uselocale (...)`: Define o local, que afeta a formatação do número e a categorização de caracteres.
*
`nextline ()`, `nextInt ()`, `nextDouble ()` etc.: Esses métodos não são parâmetros do construtor, mas controlam * como * o scanner lê dados da fonte de entrada.
Em resumo, enquanto o construtor pega apenas um argumento (um `inputStream`,` legível`, `file` ou` string`), o comportamento do scanner é ainda personalizado por seus métodos após a criação. Lembre -se de manuseio de exceção adequado, especialmente ao lidar com a entrada do arquivo.