Ok
in parte ci sono riuscito.
ho scritto da tastiera la directory dove si trova il file (Si chiama f1)
poi ho fatto l'elaborazione...
Quello che il programma non mi fa , è scrivere su un file f2 già esistente il contenuto dell'elaborazione.
Ti posto il programmino cosi capisci meglio
codice:
package Poo;
import java.util.*;
import java.math.*;
import java.io.*;
public class Applicazione {
public static void main(String[] args){
Lista lista = new Lista();
Scanner sc = new Scanner(System.in);
System.out.println("Inserisci la directory del file da elaborare");
String directoryf = sc.next();
File f = new File(directoryf);
if(!f.exists()) throw new RuntimeException("Il file non esiste");
try{
BufferedReader in = new BufferedReader(new FileReader(directoryf));
String linea = in.readLine();
StringTokenizer st = new StringTokenizer(linea);
while(st.hasMoreTokens()){
String s = st.nextToken();
int n = Integer.parseInt(s);
lista.add(n);
}
}
catch(IOException e){
e.printStackTrace();
}
Scanner sc2 = new Scanner(System.in);
System.out.println("Inserisci la directory dove vuoi scrivere l'elaborazione");
String directoryf2 = sc2.next();
File f2 = new File(directoryf2);
if(!f2.exists()) throw new RuntimeException("Il file di destinazione non esiste");
try{
PrintWriter p = new PrintWriter(new FileWriter(directoryf2));
Iterator<Integer> it = lista.iterator();
while(it.hasNext()){
p.print("[");
p.print(it.next());
p.print(",");
}
p.print("]");
}
catch(IOException e2){
e2.printStackTrace();
}
System.out.println(lista.toString());
}
}
class Lista extends LinkedList<Integer> {
public boolean add(Integer i) {
if (contains(i)) {
return false;
}
return super.add(i);
}
} // Applicazione
in pratica ho utilizzato una linkedlist per ordinare i numeri contenuti nel file f1.txt.
Come ripeto non riesco a scrivere il contenuto della lista sul file f2.txt