lolol ha scritto:
Questo è quello che ho pensato: File file = new File("file.txt"); serve per creare un nuovo file?
No, crea solo un oggetto java.io.File che rappresenta solo un "pathname" astratto. Non fa ancora nulla materialmente con il file.
lolol ha scritto:
Comunque ho fatto quello e poi nell'if volevo mettere se il file non esiste lo crea.
Generalmente non serve, nel senso che se "apri" in scrittura il file con es. FileOutputStream, FileWriter, ecc... (le classi di
scrittura, insomma), se il file non esiste lo crea e se esiste già lo rimpiazza del tutto da zero.
lolol ha scritto:
Poi che cosa succede se non inserisco scrivi.close() ?
Potrebbe non scrivere tutto completamente. Il close() va sempre fatto sulle classi di I/O.
lolol ha scritto:
Come mai se scrivi il percorso del file devi mettere due \\ e non una?
Se il percorso è in stile Windows, il separatore è il carattere "\". Ma il carattere \ è "speciale" nelle stringhe literal (letterali nel sorgente) per cui va fatto un escape per avere davvero un \ come carattere nella stringa, appunto "\\".
lolol ha scritto:
come mai il codice che ho scritto è sbagliato?
La logica di separazione non è comunque corretta. Tanto per dirne una, se dopo l'ultima parola non hai uno spazio, l'ultima parola te la perdi, perché appunto non c'è lo spazio che fa cambiare di stato e passare nel else.
Consiglio: usa StringTokenizer e fai un ciclo "finché c'è un token" e dentro: prendi il token e scrivi la riga. Vedi metodi hasMoreTokens() / nextToken() di StringTokenizer.