Прошу прощения, если об этом спрашивали раньше. Я пытаюсь обработать текстовый файл с помощью Java. Текстовый файл экспортируется из MS SQLServer. Когда я открываю его в PSPad (своего рода текстовом редакторе, в котором я могу просмотреть любой файл в шестнадцатеричном формате), он говорит мне, что мой текстовый файл находится в UTF-16LE
. Так как я получаю это от кого-то другого, это вполне возможно.
Теперь моя Java-программа не может работать с этим форматом. Поэтому я хотел знать, есть ли какой-нибудь способ, которым я могу либо преобразовать свой текстовый файл в формат ASCII
, либо выполнить некоторую предварительную обработку или что-нибудь еще? Я МОГУ изменить файл.
Любая помощь очень ценится.
Спасибо.
РЕДАКТИРОВАТЬ 1
Я написал эту программу, но она не работает, как ожидалось. Если я вижу выходной файл в PSPad, я могу видеть каждый символ как двухбайтовый символ, например «2» - 3200 вместо 32; «M» - это 4D00 вместо 4D и т. Д. Хотя и говорится, что кодировка выходного файла - UTF-8. Я немного запутался здесь. Может кто-нибудь сказать мне, что я делаю не так?
public static void main(String[] args) throws Exception {
try {
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream(
"input.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-16LE"));
String strLine;
// Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Write to the file
writeToFile(strLine);
}
// Close the input stream
in.close();
} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
}
System.out.println("done.");
}
static public void writeToFile(String str) {
try {
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("output.txt", true), "UTF-8");
BufferedWriter fbw = new BufferedWriter(writer);
fbw.write(str);
fbw.close();
} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
РЕДАКТИРОВАТЬ 2
Вот снимки:
входной файл в PSPad (бесплатное средство просмотра в шестнадцатеричном формате)
выходной файл в PSPad
вот что я ожидал увидеть: