PDA

View Full Version : [Java]Non capisco l'errore


The Darkness
11-06-2005, 10:21
potreste aiutarmi a capire dove c'è l'errore?
In pratica questo codice dovrebbe permettere di salvare in un file nominato "ortografia.txt" di salvare la parola scritta da un buffer...ma invece di aggiungerla crea un nuovo file col nome di cio che viene scritto nel buffer....

Vi allego il codice:






import java.io.*;
import java.io.InputStreamReader;
import java.io.BufferedReader ;
import java.io.IOException;


public class Analizzatore {



public static void main(String[] args) throws IOException {
File inputFile = new File("Ortografia.txt");
File outputFile = new File("Ortografia.txt");

System.out.print("Digitare la parola da aggiungere:");
InputStreamReader reader = new InputStreamReader (System.in);
BufferedReader myInput = new BufferedReader (reader);
String str= new String();
try {str = myInput.readLine();}
catch (IOException e) {System.out.println ("Si è verificato un errore: " + e);
System.exit(-1);}
System.out.println ("E' stato archiviata nel file Ortografia.txt la parola: "+str);
BufferedReader in = new BufferedReader (new FileReader("Ortografia.txt"));
BufferedWriter out = new BufferedWriter (new FileWriter(str));
save
while (in.ready())out.write(in.read());
}

}

Alvaro Vitali
11-06-2005, 11:09
quando chiami il costruttore FileWriter(str) non specifichi che vuoi aprire il file in "append" mode, usa FileWriter(str, true)

Spero risolva..ciao!

The Darkness
11-06-2005, 11:24
il problema persiste :(

The Darkness
11-06-2005, 14:37
dopo svariati tentativi sono arrivato alal soluzione parziale del problema.
Con questo nuovo codice(che vi allego alal fine) adesso riesco a salvare DENTRO un testo il contenuto di un buffer.....il problema che è sorto questa volta è che mi cancella quello che c'era precedentemente nel file di testo!!
Come lo risolvo?






import java.io.*;
public class scrittore {
public static void main(String[] args) throws IOException {
File outputFile = new File("scrivimi.txt");
FileOutputStream flusso = new FileOutputStream(outputFile);
PrintStream scrivi = new PrintStream(flusso);
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String str = stdin.readLine();
scrivi.println(str);
}
}

Mixmar
11-06-2005, 16:12
Penso che forse non dovresti usare PrintStream, ma un'altra classe, ad esempio FileWriter

Comunque, questo codice dovrebbe funzionare (non è il massimo, lo so... :D )


import java.io.*;

public class scrittore {
public static void main(String[] args) throws IOException {
File outputFile = new File("scrivimi.txt");

FileWriter scrivi = null;

try {
scrivi = new FileWriter(outputFile, true);

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String str = stdin.readLine();

scrivi.write(str, 0, str.length());
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
if (scrivi!=null) {
scrivi.close();
}
}
}
}

The Darkness
11-06-2005, 17:16
ti ringrazio!
ci ho aggiunto un separatore perche in quel modo le parole venivano inserite tutte attaccate senza piu capire dove comincia una e dove finisce l'altra :p
grazie

Mixmar
12-06-2005, 17:21
ti ringrazio!
ci ho aggiunto un separatore perche in quel modo le parole venivano inserite tutte attaccate senza piu capire dove comincia una e dove finisce l'altra :p
grazie

Sì, è vero, me ne ero accorto anch'io... :)