Posso usar a classe Scanner em arquivo de texto para obter informações?
-
21-08-2019 - |
Pergunta
este código está correto ??
String note = "text.txt";
FileWriter file = new FileWriter(note);
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name:");
String name = sc.next();
file.close();
Como posso passar esse arquivo para o programa como um argumento de linha de comando ???
Solução
Bem, pessoalmente, eu nunca use FileWriter
como ele usa a codificação padrão do sistema, que é uma coisa desagradável de fazer a maior parte do tempo. Eu prefiro FileOutputStream
+ OutputStreamWriter
. No entanto, tendo dito isso ...
O que você quer passar como argumento de linha de comando? O nome do arquivo ? Isso é fácil:
public static void main(String[] args)
{
// Insert error checking here (e.g. args.length == 0)
String note = args[0]; // For the first argument
// Rest of code here
}
Se isso é não que você quer dizer, por favor edite sua pergunta para esclarecê-lo.
A julgar pelo título, você pode estar querendo load de um arquivo em vez de System.in
. Nesse caso, você só precisa passar em um objeto File
, ou um InputStream
(como FileInputStream
) ou mesmo um Readable
(como InputStreamReader
). Se você estiver indo para passar em um File
ou InputStream
, eu recomendo fortemente que você passar o nome de codificação de caracteres bem. (Muito por isso leva-lo como uma string em vez de um Charset
está além de mim, mas o Java API é basicamente muito ruim quando se trata de codificações.)