Ciao! Ti scrivo il metodo aggiornato, probabilmente quello che hai visto era brutto, vecchio e sbagliato
Per togliere una riga da un file di testo devi creare un file nuovo e riscriverci dentro tutto ciò che è scritto nel file originale tranne la riga che devi togliere. Siccome però non puoi creare un file con lo stesso nome di quello già presente ne devi creare uno col nome diverso, dopo aver copiato le righe cancelli quello originale e rinomini questo. Esempio:
Ho un file di nome "Esempio".
Rinomino il file in "EsempioToDel" e creo un nuovo file di nome "Esempio". Copio tutte le righe di EsempioToDel tranne quella in posizione pos nel file Esempio. Alla fine cancello EsempioToDel.
codice:
public String extractLine(File file, int pos){
if(file.isFile()&&pos>=0){
String stringToReturn="";
int lineNumber=0;
try{
File fp = new File(file.getAbsolutePath()+"ToDel");
String nameFile=file.getName();
if (file.renameTo (fp)) {
delete(file.getName());
file = new File(fp.getName());
}
File fDestStore = new File(path,nameFile);
fDestStore.createNewFile();
PrintWriter p=new PrintWriter(fDestStore);
Scanner src = new Scanner(fp);
src.useDelimiter("\n");
while(src.hasNext())
{
if(lineNumber==pos)
stringToReturn=src.next();
else
p.println(src.next());
lineNumber++;
}
src.close();
p.close();
p.flush();
file.getName();
delete(file.getName());
return stringToReturn;
}catch (FileNotFoundException exc){
return "";
}
Non so se capisci tutte le parti del codice (se sai usare le classi scanner e printwriter, che qui non fanno nulla di complicato), se hai dei dubbi chiedi pure! ciao!