0

ISO 8859-1 のヒンディー語文字とデフォルトの文字エンコーディングを含むテキスト ファイルがあります。「FileInputStream」を使用してそのファイルからデータを読み取り、「FileOutputStream」を使用してデータを別のテキスト ファイルに書き込みます。

私のコードは次のとおりです。

    FileInputStream fis = new FileInputStream("D:/input.txt");
    int i = -1;
    FileOutputStream fos = new FileOutputStream("D:/outputNew.txt");
    while((i = fis.read())!= -1){
        fos.write(i);
    }
    fos.flush();
    fos.close();
    fis.close();

どこにもエンコーディング (「UTF-8」) を指定していませんが、出力ファイルには適切なテキストが含まれています。

4

1 に答える 1

8

プログラムで char を使用していないため、機能しています。あるファイルから別のファイルに生のバイトを転送しているだけです。文字を読み書きすると問題が発生します。ファイル内のバイトを文字に、またはその逆に変換するためにエンコーディングが使用されるためです。

于 2012-12-15T16:46:47.920 に答える