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?
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.