以前に聞いたことがあるとすみません。Javaを使用してテキストファイルを処理しようとしています。テキストファイルはMSSQLServerからエクスポートされます。PSPad(任意のファイルを16進形式で表示できる一種のテキストエディタ)で開くと、テキストファイルがにあることがわかりますUTF-16LE
。私は他の誰かからそれを得ているので、それはかなり可能です。
現在、私のJavaプログラムはその形式を処理できません。ASCII
それで、テキストファイルをフォーマットに変換したり、前処理などを実行したりする方法があるかどうかを知りたいと思いました。ファイルを変更できます。
どんな助けでも大歓迎です。
ありがとう。
編集1
このプログラムを作成しましたが、期待どおりに動作していません。PSPadで出力ファイルを見ると、各文字を2バイトの文字として見ることができます。たとえば、「2」は32ではなく3200です。「M」は4Dなどではなく4D00です。ただし、出力ファイルのエンコーディングは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(無料の16進ビューア)の入力ファイル
PSPadの出力ファイル
これは私が見たいと思っていたものです: