Posso utilizzare la classe Scanner in file di testo per ottenere informazioni?
-
21-08-2019 - |
Domanda
questo codice è corretto ??
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();
Come posso passare questo file al programma come argomento della riga di comando ???
Soluzione
Beh, personalmente non avevo mai usato FileWriter
in quanto utilizza la codifica di default del sistema, che è una cosa brutta da fare la maggior parte del tempo. Io preferisco FileOutputStream
+ OutputStreamWriter
. Tuttavia, dopo aver detto che ...
Cosa vuoi passare come argomento della riga di comando? Il file nome ? E 'semplice:
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 questo è non quello che vuoi dire, si prega di modificare la tua domanda per chiarire esso.
A giudicare dal titolo, è possibile che venga voglia di di carico da un file invece che da System.in
. In questo caso, è sufficiente passare un File
oggetto, o un InputStream
(come FileInputStream
) o addirittura un Readable
(come InputStreamReader
). Se avete intenzione di passare in un Charset
o <=>, mi consiglia vivamente di passare il nome codifica dei caratteri pure. (Abbastanza perché ci vuole come una stringa invece di un <=> è al di là di me, ma l'API Java è fondamentalmente piuttosto male quando si tratta di codifiche.)