web-dev-qa-db-fra.com

Lire et écrire du texte au format ANSI

Veuillez consulter le code suivant

import Java.io.*;

public class CSVConverter 
{
    private File csvFile;
    private BufferedReader reader;
    private StringBuffer strBuffer;
    private BufferedWriter writer;
    int startNumber = 0;
    private String strString[];

    public CSVConverter(String location, int startNumber)
    {
        csvFile = new File(location);
        strBuffer = new StringBuffer("");
        this.startNumber = startNumber;


        //Read
        try
        {
         reader = new BufferedReader(new FileReader(csvFile));
         String line = "";

         while((line=reader.readLine())!=null)
         {
             String[] array = line.split(",");

             String inputQuery = "insertQuery["+startNumber+"] = \"insert into WordList_Table ('Engl','Port','EnglishH','PortugueseH','Numbe','NumberOf','NumberOfTime','NumberOfTimesPor')values('"+array[0]+"','"+array[2]+"','"+array[1]+"','"+array[3]+"',0,0,0,0)\"";

             strBuffer.append(inputQuery+";"+"\r\n");
             startNumber++;

         }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

       System.out.println(strBuffer.toString());

        //Write
        try
        {
            File file = new File("C:/Users/list.txt");
            FileWriter filewrite = new FileWriter(file);

            if(!file.exists())
            {
                file.createNewFile();
            }


            writer = new BufferedWriter(filewrite);


            writer.write(strBuffer.toString());
            writer.flush();
            writer.close();

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    }

    public static void main(String[]args)
    {
        new CSVConverter("C:/Users/list.csv",90);
    }
}

J'essaie de lire un fichier CSV, de modifier le texte dans le code et de le réécrire dans un .txt fichier. Mon problème est que j'ai des mots portugais, donc le fichier doit être lu et écrit au format ANSI. À l'heure actuelle, certains mots portugais sont remplacés par des symboles dans le fichier de sortie.

Comment lire et écrire des données texte dans un fichier au format ANSI en Java?

29
PeakGen

Pour lire un fichier texte avec un encodage spécifique, vous pouvez utiliser un FileInputStream en conjonction avec un InputStreamReader. Le bon Java pour Windows ANSI est Cp1252.

reader = new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "Cp1252"));

Pour écrire un fichier texte avec un codage de caractères spécifique, vous pouvez utiliser un FileOutputStream avec un OutputStreamWriter.

writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "Cp1252"));

Les classes InputStreamReader et OutputStreamWriter traduisent entre les flux orientés octets et le texte avec un codage de caractères spécifique.

58
vanje