J'ai des problèmes avec la lecture et l'enregistrement d'un fichier .txt
Lire un fichier .txt sur une carte, puis l'enregistrer de nouveau en .txt?
Le fichier .txt
est une liste de mots avec des mots où chaque mot ont aussi un certain nombre attaché (entier). Ainsi, ses regards comme:
hello,0
bye,3
maby,0
...
J'ai déjà une fonction créée pour lire et charger le mot avec leur nombre dans le problème est cela ne fonctionne pas pour les caractères spéciaux dont j'ai besoin parce que je suis d'Allemagne.
Chaque caractère spécial est transféré dans un ?
ou un bloc vide. J'ai donc besoin d'aide pour modifier ma lecture et enregistrer la fonction pour pouvoir enregistrer et lire ä
, ö
, ü
et ß
caractères.
public void loadWordList(Map<String,Integer> map){
try{
File toRead=new File("Wortliste.txt");
FileInputStream fis=new FileInputStream(toRead); // Ist bereits in einer Try and Catch
Scanner sc=new Scanner(fis);
Map<String,String> mapInFile=new HashMap<String,String>();
//read data from file line by line:
String currentLine;
while(sc.hasNextLine()){
currentLine=sc.nextLine();
//now tokenize the currentLine:
StringTokenizer st=new StringTokenizer(currentLine,",",false);
//put tokens ot currentLine in map
map.put(st.nextToken(),Integer.parseInt(st.nextToken()));
}
fis.close();
}catch(Exception e){System.out.println("Wortliste konnte nicht gefunden werden");} // Ist bereits in einer Try and Catch
}
//******************************************************************************
//Speichern der Wordliste für Wortvorschläge
//******************************************************************************
public void saveWordList(Map<String,Integer> map){
try{
File fileTwo=new File("Wortliste.txt");
FileOutputStream fos=new FileOutputStream(fileTwo); // Ist bereits in einer Try and Catch
PrintWriter pw=new PrintWriter(fos);
for(Map.Entry<String,Integer> m :map.entrySet()){ // Andere schreibweise
pw.println(m.getKey()+","+m.getValue());
}
System.out.println("Word gespeichert");
pw.flush();
pw.close();
fos.close();
}catch(Exception e){System.out.println("Wortliste konnte nicht gespeichert werden");} // Ist bereits in einer Try and Catch
}
J'ai toujours pensé java utilisé des chaînes Unicode - qui devrait traiter automatiquement ces caractères ... –
Cela pourrait aider: https://stackoverflow.com/questions/9852978/écrire un fichier-dans-utf-8-using-fichierwriter-java –