Mh....
Ho provato a fare un esercizio che ho scritto sopra, ho scritto il codice adesso, non ho ben visto se ci sono errori di logica, ora controllo ma intanto posto ciò che ho scritto.
Il problema è che vorrei risolverlo inserendo le righe in un array, e stamparlo su file al contrario, così da avere le stringhe al contrario.
Il problema è che dovrei fare una prima lettura per sapere quante righe ho, e un' altra per memorizzare, il che dovrebbe essere completamente inefficiente.
Ho provato ad usare le marcature ma ho un errore.
codice:
import java.util.io.*;
public class Invertirelerighe
{
public static void main(String [] args) throws IOException
{
FileReader reader=null;
BufferedReader buff=null;
PrintWriter out=null;
try
{
reader=new FileReader("input.txt");
buff=new BufferedReader(reader);
out=new PrintWriter("output.txt");
buff.mark(int 1000);
int righe=0;
while(buff.ready())
righe++;
String [] frasi=new String[righe];
buff.reset();
int i=0;
while(buff.ready())
frasi[i++]=buff.ReadLine();
for(int i=frasi.length-1; i>=0; i--)
out.print(frasi[i]+"\r"+"\n");
}
catch(IoException e)
{
}
finally{
if(out!=null) out.close();
if(buff!=null) buff.close(); //Mi avevi detto che bastava chiudere solo buff e non reader perchè è più interna o sbaglio?
}
}
}
codice:
>javac Invertirelerighe.java
Invertirelerighe.java:17: '.class' expected
buff.mark(int 1000);
^
Invertirelerighe.java:17: ';' expected
buff.mark(int 1000);
^
2 errors
>Exit code: 1
Non capisco cosa manca...P.S. non capisco in ogni caso come fare a stabilire quale valore passare come parametro a mark per indicare quanti byte leggere prima di invalidare la posizione.