Cita: el valor de f[i] cuando es mayor que 0, es decir cuando ya ha creado el primer archivo, es siempre el mismo.
Prueba a ver que valor tiene f[i] antes de crear el fichero.
Tal y como está el código eso no puede ser, porque está i++ y porque en cada pasada se sobreescribiría f[0] con un nuevo "fichero" con un nuevo nombre.
Una de dos, o el código no es exactamente el que está puesto, o entrada.readLine() (no sabemos qué es) está leyendo siempre el mismo valor, de ahí mi pregunta de qué pinta.
Código Javascript
:
Ver originalScanner sc = new Scanner(System.in);
File[] files = new File[3];
String s;
int i = 0;
while(!(s = sc.nextLine()).equals("4"))
{
files[i] = new File(s);
System.out.println(files[i].createNewFile());
System.out.println(i);
i++;
}
Funciona perfectamente.