1

私の問題は、テキスト ファイルからデータを取得するときに、エンコーディングが間違っているように見えることです。この問題を回避する方法がわかりません。申し訳ありません。前もって感謝します。これがコードです。

private static String readLogFile(String path, File f) throws IOException {
    if (f.exists()){
    String data;
        try (RandomAccessFile raf = new RandomAccessFile(f, "rw")) {
            char ch = raf.readChar();
            raf.seek(f.length());
            String dataCh = String.valueOf(ch);
            data = dataCh.toString();
            System.out.println(data);
        }
        return data;
    }

    else{
        String data = "";
        return data;
    }
}
4

1 に答える 1

1

Javaドキュメントから

このメソッドは、2バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまでブロックします。

「2バイトが読み取られる」ことに注意してください

JavaはUnicode文字をサポートしているため、ストリームは、ストリームから文字を読み取るときにUnicode文字を生成する必要があると自動的に想定します。

char ch = (char)raf.readByte();代わりに試してください

于 2012-08-29T02:38:57.167 に答える