以 ANSI 格式读取和写入文本
Posted
技术标签:
【中文标题】以 ANSI 格式读取和写入文本【英文标题】:Read and Write Text in ANSI format 【发布时间】:2013-09-04 13:15:38 【问题描述】:请看下面的代码
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 格式的文件中?
【问题讨论】:
List要读取具有特定编码的文本文件,您可以将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
类在面向字节的流和具有特定字符编码的文本之间进行转换。
【讨论】:
为什么没有列出 Cp1252 here? 也许这个列表信息更丰富:docs.oracle.com/javase/8/docs/technotes/guides/intl/…以上是关于以 ANSI 格式读取和写入文本的主要内容,如果未能解决你的问题,请参考以下文章