texto - modificar archivos txt en java
Leer y escribir texto en formato ANSI (1)
Por favor, eche un vistazo al siguiente código
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);
}
}
Estoy intentando leer un archivo CSV, editar el texto en código y volver a escribirlo en un archivo .txt
. Mi problema es que tengo palabras en portugués, por lo que el archivo debe leerse y escribirse en formato ANSI
. En este momento, algunas palabras en portugués se reemplazan con símbolos en el archivo de salida.
¿Cómo puedo leer y escribir datos de texto en un archivo en formato ANSI en Java?
Para leer un archivo de texto con una codificación específica, puede usar FileInputStream
junto con un InputStreamReader
. La codificación Java correcta para Windows ANSI es Cp1252
.
reader = new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "Cp1252"));
Para escribir un archivo de texto con una codificación de caracteres específica, puede usar un FileOutputStream
junto con un OutputStreamWriter
.
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "Cp1252"));
Las clases InputStreamReader
y OutputStreamWriter
traducen entre flujos orientados a bytes y texto con una codificación de caracteres específica.