Rispondo prima al tuo primo quesito, poi al secondo:

Per leggere più di un valore devi rieseguire più volte l'istruzione
codice:
String c_Nomefile2 = in2.readLine();
Per esempio, la puoi inserire in un ciclo for, while, do/while... Oppure puoi usare due variabili (se ti servono entrambi i valori "contemporaneamente"), oppure un array di stringhe... le soluzioni sono molteplici e dipendono da quello che devi fare.

Per la seconda domanda: il problema può sorgere se nella stringa non hai inserito nessun carattere "."
Se non c'è quel carattere, il metodo lastIndexOf() ritorna -1, quindi l'espressione prende una sottostringa che va dal carattere in posizione 0 al carattere in posizione -1 (il che non esiste).
Devi gestire tu questo caso, controllando che il carattere "." esista.


Ciao.