读取和写入ANSI格式的文本

请看下面的代码

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);

}

}

我正在尝试读取CSV文件,在代码中编辑文本,然后将其写回到.txt文件中。我的问题是,我有葡萄牙语单词,因此应使用ANSI格式读写文件。现在,输出文件中的某些葡萄牙语单词已替换为符号。

如何在Java中以ANSI格式读取文本数据并将其写入文件?

回答:

要读取具有特定编码的文本文件,可以将FileInputStream结合使用InputStreamReader。Windows ANSI的正确Java编码是Cp1252。

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

要编写具有特定字符编码的文本文件,可以将和FileOutputStream一起使用OutputStreamWriter。

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

这些类InputStreamReader和OutputStreamWriter字节之间在面向字节的流和具有特定字符编码的文本之间转换。

以上是 读取和写入ANSI格式的文本 的全部内容, 来源链接: utcz.com/qa/408059.html

回到顶部